Константне значення визначається за допомогою 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 вправ та справжнє наставництво від людей, і все це безкоштовно.