Kurzusok
/
Elm
Elm
/
Feladatok
/
Mario csodálatos lasagnája
Mario csodálatos lasagnája

Mario csodálatos lasagnája

Tanulófeladat

Bevezetés

Let

A let kifejezéssel helyi scope-ot hozhatsz létre, és néhány helyzetben hasznos lehet:

  • Kifejezések egyszerűsítésére
  • A közbenső kifejezések eredményeinek elnevezésére
  • Egy kifejezés kisebb darabokra bontására, ha az kezd túl nagyra nőni

Egy let kifejezésen belül a legtöbb dolgot megteheted, például destrukturálhatsz is (erről bővebben a későbbi feladatokban olvashatsz), de új egyedi típust vagy típusaliast nem hozhatsz létre.

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)

Utasítások

A születésnapodra egy új szakácskönyvet kaptál, és szeretnéd kideríteni, hogy a benne lévő lasagne-recept jobb-e, mint a jelenlegi kedvenc szakácskönyvedé. Ebben a feladatban kódot írsz majd, hogy segíts megfőzni a lasagnét az új szakácskönyvből.

A lakótársad még mindig elfoglalt az irodában, és szeretné tudni, mikorra készül el a lasagne, hogy biztosan időben hazaérjen.

1. Számold ki, mikorra készül el a lasagne

Készíts egy függvényt, amely kiszámolja, hogy mikorra készül el a lasagne. Ahhoz, hogy a kód egyszerű és kifejező legyen, let kifejezést használj.

Definiáld a remainingTimeInMinutes függvényt, amely két paramétert vár, és a törzse egy let kifejezés. Az első paraméter a lasagne rétegeinek a száma, a második pedig az, hogy hány perc telt el azóta, hogy elkezdtél főzni.

Definiáld az expectedMinutesInOven-t (a let kifejezés let részében), amely megmutatja, hány percig kell a lasagnének a sütőben lennie. A szakácskönyv szerint a várt sütési idő 40 perc:

expectedMinutesInOven
    --> 40

Definiáld a preparationTimeInMinutes függvényt (a let kifejezés let részében), amely paraméterként a lasagne rétegeinek a számát kapja, és visszaadja, hány percig tart a lasagne előkészítése, feltéve, hogy minden réteg elkészítése 2 percet vesz igénybe.

preparationTimeInMinutes 3
    --> 6

Add vissza, hány perc van hátra a lasagne elkészültéig (a let kifejezés in részében): ez a preparationTimeInMinutes és az expectedMinutesInOven összege, csökkentve azzal a percszámmal, amely azóta telt el, hogy elkezdtél főzni.

remainingTimeInMinutes 3 10
    --> 6 + 40 - 10 = 36
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Elm Exercism

Készen állsz elkezdeni a(z) Mario csodálatos lasagnája feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Elm nyelvet 28 fogalom110 feladat segítségével, valódi emberi mentorálással, mindez ingyen.