Lad

Let-udtryk

Et let-udtryk kan bruges til at hente en værdi fra en mellemliggende beregning i en variabel.

let-expression:
      letvariable-list-udtrykin
variable-list:
      variabel
      variable
,variable-list
Variabel:
      variable-name-udtryk
=
variable-name:
      Id

I følgende eksempel vises mellemliggende resultater, der beregnes og gemmes i variabler x, , yog z som derefter bruges i en efterfølgende beregning x + y + z:

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

Resultatet af dette udtryk er:

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

Følgende gælder ved evaluering af udtryk i let-expression:

  • Udtrykkene på variabellisten definerer et nyt område, der indeholder id'erne fra variable-list-produktionen og skal være til stede, når udtrykkene evalueres i variable-list-produktionerne . Udtryk på variabellisten kan referere til hinanden.

  • Udtrykkene i variable-list skal evalueres, før udtrykket i let-expression evalueres.

  • Medmindre der er adgang til udtrykkene på variabellisten , må de ikke evalueres.

  • Fejl, der opstår under evalueringen af udtrykkene i let-expression , overføres.

Et let-udtryk kan ses som syntaktisk sukker over et implicit postudtryk. Følgende udtryk svarer til eksemplet ovenfor:

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