Треки
/
Gleam
Gleam
/
Вправи
/
Лазанья
Лазанья

Лазанья

Навчальна вправа

Вступ

Основи

Функції

У 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
}

Вказівки

У цій вправі ми напишемо трохи коду, щоб допомогти приготувати чудову лазанью з улюбленої кулінарної книги.

На нас чекає пʼять завдань, усі повʼязані з часом, витраченим на приготування лазаньї.

1. Визначте очікуваний час у духовці в хвилинах

Визначте функцію expected_minutes_in_oven, яка не приймає жодних аргументів і повертає, скільки хвилин лазанья має бути в духовці. Згідно з кулінарною книгою, очікуваний час у духовці становить 40 хвилин:

expected_minutes_in_oven()
// -> 40

2. Обчисліть час, що залишився в духовці, у хвилинах

Визначте функцію remaining_minutes_in_oven, яка приймає як аргумент фактичну кількість хвилин, які лазанья вже провела в духовці, і повертає, скільки хвилин лазаньї ще залишилося перебувати в духовці, виходячи з очікуваного часу в духовці в хвилинах із попереднього завдання.

remaining_minutes_in_oven(30)
// -> 10

3. Обчисліть час на підготовку в хвилинах

Визначте функцію preparation_time_in_minutes, яка приймає як аргумент кількість шарів, доданих до лазаньї, і повертає, скільки хвилин ми витратили на підготовку лазаньї, якщо припустити, що на підготовку кожного шару потрібно 2 хвилини.

preparation_time_in_minutes(2)
// -> 4

4. Обчисліть загальний час роботи в хвилинах

Визначте функцію total_time_in_minutes, яка приймає два аргументи: перший аргумент - кількість шарів, доданих до лазаньї, а другий аргумент - кількість хвилин, які лазанья вже провела в духовці. Функція має повернути, скільки хвилин загалом ми витратили на приготування лазаньї, а це сума часу на підготовку в хвилинах і часу в хвилинах, який лазанья провела в духовці на цей момент.

total_time_in_minutes(3, 10)
// -> 16

5. Створіть сповіщення, що лазанья готова

Визначте функцію alarm, яка не приймає жодних аргументів і повертає повідомлення про те, що лазанья готова до вживання.

alarm()
// -> "Ding!"
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Gleam Exercism

Час розпочати Лазанья?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Gleam, а також 33 концепції122 вправи та справжнє наставництво від людей, і все це безкоштовно.