Вираз 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)
На день народження нам подарували нову кулінарну книгу, і ми хочемо зʼясувати, чи кращий рецепт лазаньї з неї за рецепт із нашої улюбленої кулінарної книги. У цій вправі ми напишемо трохи коду, який допоможе приготувати лазанью за новою кулінарною книгою.
Наша сусідка по кімнаті все ще зайнята в офісі й хоче знати, коли лазанья буде готова, щоб встигнути повернутися вчасно.
Створіть функцію, яка зʼясує, коли лазанья буде готова. Щоб код був простим і виразним, використайте вираз 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
Зареєструйтеся на Exercism, щоб вивчати й опановувати Elm, а також 28 концепцій110 вправ та справжнє наставництво від людей, і все це безкоштовно.