Une valeur constante se définit avec name = expression,
où, en Elm, tout ce qui n'est pas une définition est une expression.
five = 5
six = 3 + 3
Les fonctions se définissent avec name parameters... = expression,
les paramètres étant séparés uniquement par des espaces.
add number1 number2 = number1 + number2
Appeler une fonction est aussi une expression : on écrit son nom, puis on passe des arguments pour chacun des paramètres de la fonction, séparés par des espaces, exactement comme pour la définition d'une fonction.
five = add 2 3
Les parenthèses permettent de préciser l'ordre d'évaluation d'une expression.
six = add 2 (1 * 4)
twelve = add 2 1 * 4
Elm n'utilise pas de marqueurs syntaxiques comme les accolades, les parenthèses ou les points-virgules pour délimiter le code. Il se sert à la place des espaces et de l'indentation.
-- A function split over multiple lines, so subsequent lines must be indented
add number1 number2 =
number1 + number2
https://elmprogramming.com/indentation.html
Chaque fichier en Elm est un module et doit contenir une instruction module avant tout autre code.
Le nom d'un module doit correspondre à son nom de fichier : le module Calculator doit donc se trouver dans le fichier Calculator.elm.
Tout ce qui est défini dans un module a une portée privée et n'est pas accessible depuis l'extérieur de ce module, sauf si c'est listé dans exposing.
-- Define the Calculator module, and expose the `add` function
module Calculator exposing (add)
six = 3 + 3
add number1 number2 = number1 + number2
-- Define the Calculator module, and expose everything within: `six` and `add`
module Calculator exposing (..)
six = 3 + 3
add number1 number2 = number1 + number2
https://elm-lang.org/docs/syntax#modules
Un commentaire est un texte présent dans le fichier Elm qui n'est pas interprété comme du code.
Il est surtout destiné à être lu par toi et par les autres programmeurs.
Il existe une syntaxe légère pour les commentaires sur une seule ligne, basée sur les doubles tirets.
Les commentaires multilignes sont également possibles avec la paire de délimiteurs d'ouverture et de fermeture {- et -}.
-- a single line comment
-- another single line comment
{- a multiline comment
spawning multiple lines
-}
Il existe un guide de style, et elm-format permet de formater le code automatiquement.
Dans cet exercice, tu vas écrire du code pour t'aider à cuisiner de délicieuses lasagnes tirées de ton livre de recettes préféré.
Trois tâches t'attendent, toutes liées au temps passé à cuisiner les lasagnes.
Définis expectedMinutesInOven pour calculer combien de minutes les lasagnes doivent rester au four. D'après le livre de recettes, la durée de cuisson attendue au four est de 40 minutes :
expectedMinutesInOven
--> 40
Définis preparationTimeInMinutes, qui prend le nombre de couches des lasagnes en paramètre 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
Définis la fonction elapsedTimeInMinutes, qui prend deux paramètres : le premier est le nombre de couches des lasagnes, et le second le nombre de minutes que les lasagnes ont déjà passées au four. La fonction doit renvoyer le nombre de minutes que tu as passées à cuisiner les lasagnes, c'est-à-dire la somme du temps de préparation en minutes et du temps en minutes que les lasagnes ont passé au four à cet instant.
elapsedTimeInMinutes 3 20
--> 26
Inscris-toi sur Exercism pour apprendre et maîtriser Elm avec 28 concepts110 exercices, et un vrai mentorat humain, le tout gratuitement.