У Gleam функції визначають за допомогою синтаксису pub fn.
pub fn add(x: Int, y: Int) -> Int {
x + y
}
Ця функція приймає два аргументи, обидва типу Int, і повертає значення типу Int. У Gleam немає ключового слова return: значення останнього виразу у функції завжди повертається неявно.
Анотації типів для аргументів і тип поверненого значення необовʼязкові, і Gleam завжди повністю перевірятиме типи в коді. Зазвичай програмісти Gleam додають анотації типів для ясності, але за бажанням їх можна опустити.
pub fn add(x, y) {
x + y
}
Функцію можна викликати за допомогою синтаксису function_name(argument1, argument2).
pub fn double(x: Int) -> Int {
// Call the add function defined above
add(x, x)
}
У Gleam змінні визначають за допомогою синтаксису let name = expression.
pub fn main() {
let count = 1
}
Змінні можна оголошувати з анотаціями типів. Як і аргументи функцій, вони необовʼязкові, хоча більшість програмістів Gleam заради стислості опускає анотації типів для змінних.
pub fn main() {
let count: Int = 1
}
У Gleam рядки тексту (англ. string) записують у подвійних лапках.
pub fn greeting() {
"Hello, world!"
}
Коментарі можна використовувати, щоб залишати нотатки іншим розробникам, які читають вихідний код. У Gleam коментар займає один рядок і починається з //.
pub fn main() {
// This is a comment
let x = 1
}
У цій вправі ми напишемо трохи коду, щоб допомогти приготувати чудову лазанью з улюбленої кулінарної книги.
На нас чекає пʼять завдань, усі повʼязані з часом, витраченим на приготування лазаньї.
Визначте функцію expected_minutes_in_oven, яка не приймає жодних аргументів і повертає, скільки хвилин лазанья має бути в духовці. Згідно з кулінарною книгою, очікуваний час у духовці становить 40 хвилин:
expected_minutes_in_oven()
// -> 40
Визначте функцію remaining_minutes_in_oven, яка приймає як аргумент фактичну кількість хвилин, які лазанья вже провела в духовці, і повертає, скільки хвилин лазаньї ще залишилося перебувати в духовці, виходячи з очікуваного часу в духовці в хвилинах із попереднього завдання.
remaining_minutes_in_oven(30)
// -> 10
Визначте функцію preparation_time_in_minutes, яка приймає як аргумент кількість шарів, доданих до лазаньї, і повертає, скільки хвилин ми витратили на підготовку лазаньї, якщо припустити, що на підготовку кожного шару потрібно 2 хвилини.
preparation_time_in_minutes(2)
// -> 4
Визначте функцію total_time_in_minutes, яка приймає два аргументи: перший аргумент - кількість шарів, доданих до лазаньї, а другий аргумент - кількість хвилин, які лазанья вже провела в духовці. Функція має повернути, скільки хвилин загалом ми витратили на приготування лазаньї, а це сума часу на підготовку в хвилинах і часу в хвилинах, який лазанья провела в духовці на цей момент.
total_time_in_minutes(3, 10)
// -> 16
Визначте функцію alarm, яка не приймає жодних аргументів і повертає повідомлення про те, що лазанья готова до вживання.
alarm()
// -> "Ding!"
Зареєструйтеся на Exercism, щоб вивчати й опановувати Gleam, а також 33 концепції122 вправи та справжнє наставництво від людей, і все це безкоштовно.