Let
Vous pouvez utiliser une expression let pour capturer une valeur à partir d’un calcul intermédiaire dans une variable.
let-expression:
let
variable-list in
expression
variable-list :
variable
variable-list ,
variable :
expression de nom =
de variable
variable-name :
identifier
L’exemple suivant illustre le calcul et le stockage des résultats intermédiaires dans des variables x
, y
et z
qui sont ensuite utilisées dans un calcul ultérieur x + y + z
:
let x = 1 + 1,
y = 2 + 2,
z = y + 1
in
x + y + z
Le résultat de cette expression est :
11 // (1 + 1) + (2 + 2) + (2 + 2 + 1)
Ce qui suit s’applique lors de l’évaluation d’expressions dans la let-expression :
Les expressions de la liste de variables définissent une nouvelle étendue contenant les identificateurs de la production variable-list, et doivent être présentes lors de l’évaluation des expressions dans les productions variable-list. Les expressions dans la variable-list peuvent faire référence les unes aux autres.
Les expressions contenues dans la variable-list doivent être évaluées avant l’expression de la let-expression.
Les expressions de la variable-list ne doivent être évaluées que si elles sont sollicitées.
Les erreurs générées lors de l’évaluation des expressions dans la let-expression sont propagées.
Une expression let peut être considérée comme du sucre syntaxique sur une expression d’enregistrement implicite. L’expression suivante est équivalente à l’exemple ci-dessus :
[ x = 1 + 1,
y = 2 + 2,
z = y + 1,
result = x + y + z
][result]