Track
/
Elm
Elm
/
Esercizi
/
Le meravigliose lasagne di Mario
Le meravigliose lasagne di Mario

Le meravigliose lasagne di Mario

Esercizio di apprendimento

Introduzione

Let

L'espressione let si usa per creare uno scope locale ed è utile in alcune situazioni:

  • Per semplificare le espressioni
  • Per dare un nome ai risultati delle espressioni intermedie
  • Per suddividere un'espressione in parti più piccole quando diventa troppo grande

All'interno di un'espressione let puoi fare quasi tutto, incluso il destructuring (ne parleremo più in dettaglio negli esercizi successivi), ma non è possibile definire un nuovo Custom Type o un 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)

Istruzioni

Per il tuo compleanno ti hanno regalato un nuovo ricettario e vuoi scoprire se la ricetta della lasagna che contiene è migliore di quella del tuo ricettario preferito. In questo esercizio scriverai del codice per aiutarti a cucinare la lasagna del nuovo ricettario.

La tua coinquilina è ancora impegnata in ufficio e vuole sapere a che ora sarà pronta la lasagna, così da poter tornare in tempo.

1. Calcola a che ora sarà pronta la lasagna

Crea una funzione per calcolare a che ora sarà pronta la lasagna. Per rendere il codice semplice ed espressivo, dovresti usare un'espressione let.

Definisci la funzione remainingTimeInMinutes, che accetta due parametri e ha come corpo un'espressione let. Il primo parametro è il numero di strati della lasagna, il secondo è il numero di minuti trascorsi da quando hai iniziato a cucinare.

Definisci expectedMinutesInOven (nella parte let dell'espressione let) per verificare quanti minuti la lasagna deve stare in forno. Secondo il ricettario, il tempo di cottura previsto è di 40 minuti:

expectedMinutesInOven
    --> 40

Definisci preparationTimeInMinutes (nella parte let dell'espressione let), che accetta come parametro il numero di strati della lasagna e restituisce quanti minuti servono per prepararla, supponendo che ogni strato richieda 2 minuti.

preparationTimeInMinutes 3
    --> 6

Restituisci quanti minuti mancano perché la lasagna sia pronta (nella parte in dell'espressione let): è la somma di preparationTimeInMinutes e expectedMinutesInOven meno il numero di minuti trascorsi da quando hai iniziato a cucinare.

remainingTimeInMinutes 3 10
    --> 6 + 40 - 10 = 36
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Elm Exercism

Vuoi iniziare Le meravigliose lasagne di Mario?

Iscriviti a Exercism per imparare e padroneggiare Elm con 28 concetti110 esercizi e il mentoring di persone reali, tutto gratis.