3.3. 프로그램언어 달(Dhall)에서의 제어 구조

프로그램언어 달(Dhall)에서의 if-else 구조

프로그램언어 달(Dhall)에서의 if-else 구조는 조건에 따라 다른 값을 반환하도록 도와줍니다. 아래는 if-else 구조의 예제 코드입니다.


let condition = True

let result = if condition then "Condition is true" else "Condition is false"

in result

프로그램언어 달(Dhall)에서의 loop 구조

프로그램언어 달(Dhall)에서는 명시적인 반복문인 ‘loop’ 구조가 없습니다. 대신 재귀 함수를 활용하여 반복적인 작업을 수행할 수 있습니다.

아래는 Dhall에서 재귀 함수를 사용하여 리스트의 각 요소를 출력하는 예제 코드입니다:


let printList = \(list : List Text) ->
      let loop = \(remaining : List Text) ->
          merge
          { Nil = ""
          , Cons = \(head : Text) \(tail : List Text) -> head ++ "\n" ++ loop tail
          }
          in  loop remaining

in printList [ "apple", "banana", "cherry" ]

프로그램언어 달(Dhall)에서의 switch-case 구조

프로그램언어 달(Dhall)에서의 switch-case 구조는 패턴 매칭을 통해 여러 경우의 수에 따라 다른 동작을 수행할 수 있도록 하는 구조입니다.

예를 들어, 아래는 Dhall에서 switch-case 구조를 사용한 예제 코드입니다:


let example = 42

let result = case example of
               + 0 -> "Zero"
               + 1 -> "One"
               + _ -> "Other"
in result

프로그램언어 달(Dhall)에서의 break와 continue 구조

프로그램언어 달(Dhall)에서는 break와 continue와 같은 명시적인 제어 구조를 제공하지 않습니다. 대신, Dhall은 함수형 프로그래밍 언어로, 재귀 함수나 조건문을 사용하여 흐름을 제어합니다.

아래는 Dhall에서 break와 continue에 해당하는 제어 구조가 없는 대신, 재귀 함수와 조건문을 사용하는 예제 코드입니다.


let rec loop = \(n : Natural) ->
    if n == 5 then
        n
    else
        loop (n + 1)

in loop 0
    

프로그램언어 달(Dhall)에서의 함수 호출 구조

프로그래밍 언어 Dhall에서 함수 호출 구조는 함수명 뒤에 괄호를 사용하여 인수를 전달하는 방식으로 이루어집니다. 함수 호출은 함수명과 괄호 안에 전달할 인수들을 쉼표로 구분하여 나열합니다.

예를 들어, 다음은 Dhall에서 함수 호출을 보여주는 간단한 예제 코드입니다:


let add = \(x: Natural) -> \(y: Natural) -> x + y

let result = add 3 5
in result

Leave a Comment