Треки
/
Elm
Elm
/
Вправи
/
Чудова лазанья Маріо
Чудова лазанья Маріо

Чудова лазанья Маріо

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

Вступ

Let

Вираз let створює локальну область видимості й буває корисним у кількох ситуаціях:

  • Для спрощення виразів
  • Для найменування результатів проміжних виразів
  • Для розбиття виразу на дрібніші частини, якщо він стає завеликим

Усередині виразу let можна робити більшість речей, зокрема деструктуризацію (докладніше про це в наступних вправах), але визначити новий Custom Type або Type Alias неможливо.

let
  cube x = x * x * x
in
  cube a + cube b + cube c
beginWithPattern : Size -> Padding -> Pattern -> GameOfLife
beginWithPattern minimumSize padding pattern =
    let
        size = calculateSize minimumSize padding pattern

        center = Size.center size

        centeredPattern = Pattern.centerAt center pattern

        dimensions = { width = size, height = size }

        deadCells = Matrix.create dimensions Dead
    in
    GameOfLife (bringPatternToLife deadCells centeredPattern)

Вказівки

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

Наша сусідка по кімнаті все ще зайнята в офісі й хоче знати, коли лазанья буде готова, щоб встигнути повернутися вчасно.

1. Зʼясуйте, коли лазанья буде готова

Створіть функцію, яка зʼясує, коли лазанья буде готова. Щоб код був простим і виразним, використайте вираз let.

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

Визначте expectedMinutesInOven (у частині let виразу let), щоб перевірити, скільки хвилин лазанья має бути в печі. Згідно з кулінарною книгою, очікуваний час у печі становить 40 хвилин:

expectedMinutesInOven
    --> 40

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

preparationTimeInMinutes 3
    --> 6

Поверніть кількість хвилин, що залишилися до готовності лазаньї (у частині in виразу let), яка дорівнює сумі preparationTimeInMinutes і expectedMinutesInOven мінус кількість хвилин, що минули від початку приготування.

remainingTimeInMinutes 3 10
    --> 6 + 40 - 10 = 36
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Elm Exercism

Час розпочати Чудова лазанья Маріо?

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