L'espressione let si usa per creare uno scope locale ed è utile in alcune situazioni:
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)
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.
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
Iscriviti a Exercism per imparare e padroneggiare Elm con 28 concetti110 esercizi e il mentoring di persone reali, tutto gratis.