상수 값은 name = expression으로 정의해요.
Elm에서는 정의를 제외한 모든 것이 표현식이거든요.
five = 5
six = 3 + 3
함수는 name parameters... = expression으로 정의하고,
매개변수는 공백으로만 구분해요.
add number1 number2 = number1 + number2
함수를 호출하는 것도 표현식이에요. 함수의 이름을 쓰고 각 매개변수에 대응하는 인자를 전달하면 되는데, 함수를 정의할 때처럼 공백으로 구분해요.
five = add 2 3
괄호를 사용하면 표현식의 평가 순서를 지정할 수 있어요.
six = add 2 (1 * 4)
twelve = add 2 1 * 4
Elm은 중괄호, 괄호, 세미콜론 같은 문법적 기호로 코드의 경계를 지정하지 않아요. 대신 공백과 들여쓰기를 사용해요.
-- A function split over multiple lines, so subsequent lines must be indented
add number1 number2 =
number1 + number2
https://elmprogramming.com/indentation.html
Elm에서 각 파일은 하나의 모듈이고, 다른 모든 코드보다 앞에 module문을 포함해야 해요.
모듈 이름은 파일 이름과 일치해야 하므로, Calculator 모듈은 Calculator.elm 파일에 있어야 해요.
모듈 안에서 정의된 것은 무엇이든 그 모듈의 스코프 안에만 머물러서,
exposing에 나열하지 않는 한 이 모듈 밖에서는 접근할 수 없어요.
-- Define the Calculator module, and expose the `add` function
module Calculator exposing (add)
six = 3 + 3
add number1 number2 = number1 + number2
-- Define the Calculator module, and expose everything within: `six` and `add`
module Calculator exposing (..)
six = 3 + 3
add number1 number2 = number1 + number2
https://elm-lang.org/docs/syntax#modules
주석은 Elm 파일 안에 있으면서 코드로 해석되지 않는 글을 말해요.
주로 자신과 다른 프로그래머가 읽도록 하기 위한 것이에요.
두 개의 대시를 사용하는, 한 줄 주석을 위한 간단한 문법이 있어요.
여러 줄 주석도 여는 구분자와 닫는 구분자인 {-와 -} 쌍으로 쓸 수 있어요.
-- a single line comment
-- another single line comment
{- a multiline comment
spawning multiple lines
-}
스타일 가이드가 있고, elm-format을 사용하면 코드 서식을 자동으로 맞출 수 있어요.
이 연습 문제에서는 좋아하는 요리책에 나오는 근사한 라자냐를 만들 수 있도록 도와주는 코드를 작성해요.
라자냐를 요리하는 데 걸리는 시간과 관련된 세 가지 작업이 있어요.
expectedMinutesInOven을 정의해서 라자냐를 오븐에 몇 분 동안 넣어 두어야 하는지 계산해요. 요리책에 따르면 오븐에 넣어야 하는 예상 시간은 40분이에요:
expectedMinutesInOven
--> 40
preparationTimeInMinutes를 정의해요. 이 함수는 라자냐의 층 개수를 매개변수로 받아서, 각 층을 준비하는 데 2분이 걸린다고 가정할 때 라자냐를 준비하는 데 몇 분이 걸리는지 반환해요.
preparationTimeInMinutes 3
--> 6
elapsedTimeInMinutes 함수를 정의해요. 이 함수는 두 개의 매개변수를 받아요. 첫 번째 매개변수는 라자냐의 층 개수이고, 두 번째 매개변수는 라자냐가 오븐에 들어 있던 시간(분)이에요. 이 함수는 라자냐를 요리하는 데 얼마나 많은 시간을 들였는지 반환해야 하는데, 이는 준비 시간(분)과 그 순간까지 라자냐가 오븐에서 보낸 시간(분)을 더한 값이에요.
elapsedTimeInMinutes 3 20
--> 26
Exercism에 가입하고 Elm 트랙을 개념 28개연습 문제 110개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.