L'expression let permet de créer une portée locale et est utile dans quelques situations :
On peut faire la plupart des choses à l'intérieur d'une expression let, notamment de la déstructuration (plus de détails à ce sujet dans les exercices suivants), mais il n'est pas possible de définir un nouveau type personnalisé ou un alias de type.
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)
Pour ton anniversaire, on t'a offert un nouveau livre de cuisine, et tu veux savoir si la recette de lasagnes qu'il contient est meilleure que celle de ton livre de cuisine préféré. Dans cet exercice, tu vas écrire du code pour t'aider à cuisiner les lasagnes de ce nouveau livre.
Ta colocataire est encore occupée au bureau et veut savoir à quelle heure les lasagnes seront prêtes, pour être sûre d'être rentrée à temps.
Crée une fonction qui détermine à quelle heure les lasagnes seront prêtes. Pour que le code reste simple et expressif, utilise une expression let.
Définis la fonction remainingTimeInMinutes qui prend deux paramètres et dont le corps est une expression let. Le premier paramètre est le nombre de couches de lasagnes, et le second le nombre de minutes depuis que tu as commencé à cuisiner.
Définis expectedMinutesInOven (dans la partie let de l'expression let) pour savoir combien de minutes les lasagnes doivent passer au four. D'après le livre de cuisine, le temps de cuisson attendu est de 40 minutes :
expectedMinutesInOven
--> 40
Définis preparationTimeInMinutes (dans la partie let de l'expression let) qui prend en paramètre le nombre de couches de lasagnes et renvoie le nombre de minutes nécessaires pour préparer les lasagnes, en supposant que chaque couche demande 2 minutes de préparation.
preparationTimeInMinutes 3
--> 6
Renvoie le nombre de minutes restantes avant que les lasagnes ne soient prêtes (dans la partie in de l'expression let), c'est-à-dire la somme de preparationTimeInMinutes et de expectedMinutesInOven, moins le nombre de minutes depuis que tu as commencé à cuisiner.
remainingTimeInMinutes 3 10
--> 6 + 40 - 10 = 36
Inscris-toi sur Exercism pour apprendre et maîtriser Elm avec 28 concepts110 exercices, et un vrai mentorat humain, le tout gratuitement.