Freigeben über


Let

Let-Ausdruck

Ein Let-Ausdruck kann verwendet werden, um einen Wert aus einer Zwischenberechnung in einer Variablen zu erfassen.

Let-Ausdruck:
      letvariable-listinexpression
variable-list:
      -Variable
      variable
,variable-list
variable:
      variable-name
=expression
variable-name:
      identifier

Das folgende Beispiel zeigt, wie Zwischenergebnisse berechnet und in den Variablen x, y und z gespeichert werden, die dann in einer nachfolgenden Berechnung (x + y + z) verwendet werden:

let     x = 1 + 1,
        y = 2 + 2,
        z = y + 1 
in
        x + y + z

Das Ergebnis für diesen Ausdruck ist:

11  // (1 + 1) + (2 + 2) + (2 + 2 + 1)

Folgendes gilt beim Auswerten von Ausdrücken innerhalb eines Let-Ausdrucks:

  • Die Ausdrücke in der Variablenliste definieren einen neuen Bereich, der die Bezeichner aus der Produktion Variablenliste enthält und bei der Auswertung der Ausdrücke innerhalb der Produktion Variablenliste vorhanden sein muss. Ausdrücke innerhalb der Variablenliste können aufeinander verweisen.

  • Die Ausdrücke innerhalb der Variablenliste müssen ausgewertet werden, bevor der Ausdruck im Let-Ausdruck ausgewertet wird.

  • Sie dürfen nur ausgewertet werden, wenn auf die Ausdrücke in der Variablenliste zugegriffen wird.

  • Fehler, die während der Auswertung der Ausdrücke im Let-Ausdruck ausgelöst werden, werden weitergegeben.

Ein Let-Ausdruck kann als syntaktischer Zucker über einen impliziten Datensatzausdruck betrachtet werden. Der folgende Ausdruck entspricht dem obigen Beispiel:

[     x = 1 + 1,
      y = 2 + 2,
      z = y + 1,
      result = x + y + z 
][result]