Parcours
/
Elm
Elm
/
Exercices
/
Les lasagnes merveilleuses de Mario
Les lasagnes merveilleuses de Mario

Les lasagnes merveilleuses de Mario

Exercice d'apprentissage

Introduction

Let

L'expression let permet de créer une portée locale et est utile dans quelques situations :

  • Pour simplifier des expressions
  • Pour nommer les résultats d'expressions intermédiaires
  • Pour découper une expression en morceaux plus petits si elle devient trop grande

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)

Instructions

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.

1. Détermine l'heure à laquelle les lasagnes seront prêtes

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
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Elm Exercism

Prêt à commencer Les lasagnes merveilleuses de Mario ?

Inscris-toi sur Exercism pour apprendre et maîtriser Elm avec 28 concepts110 exercices, et un vrai mentorat humain, le tout gratuitement.