Lire en anglais

Partager via


Let

Expression let

Vous pouvez utiliser une expression let pour capturer une valeur à partir d’un calcul intermédiaire dans une variable.

let-expression:
      letvariable-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]