Pozwalać
Wyrażenie let może służyć do przechwytywania wartości z obliczeń pośrednich w zmiennej.
wyrażenie let:
let
in
lista zmiennych wyrażenie
lista zmiennych:
zmienna
lista zmiennych ,
zmienna:
wyrażenie zmiennej nazwy =
nazwa-zmiennej:
identyfikator
W poniższym przykładzie przedstawiono wyniki pośrednie obliczane i przechowywane w zmiennych , y
i z
które są następnie używane w kolejnych obliczeniachx
x + y + z
:
let x = 1 + 1,
y = 2 + 2,
z = y + 1
in
x + y + z
Wynikiem tego wyrażenia jest:
11 // (1 + 1) + (2 + 2) + (2 + 2 + 1)
Podczas obliczania wyrażeń w wyrażeniu let są przechowywane następujące zasady:
Wyrażenia na liście zmiennych definiują nowy zakres zawierający identyfikatory z produkcji listy zmiennych i muszą być obecne podczas oceniania wyrażeń w środowiskach produkcyjnych listy zmiennych. Wyrażenia na liście zmiennych mogą odwoływać się do siebie nawzajem.
Wyrażenia na liście zmiennych muszą być obliczane przed obliczeniu wyrażenia w wyrażeniu let.
Jeśli nie są dostępne wyrażenia na liście zmiennych, nie mogą być obliczane.
Błędy zgłaszane podczas obliczania wyrażeń w wyrażeniu let są propagowane.
Wyrażenie let może być postrzegane jako cukier składniowy na niejawnym wyrażeniu rekordu. Poniższe wyrażenie jest równoważne z powyższym przykładem:
[ x = 1 + 1,
y = 2 + 2,
z = y + 1,
result = x + y + z
][result]