Permitir
Expressão let
Uma expressão let pode ser usada para capturar um valor de um cálculo intermediário em uma variável.
expressão-let:
let
lista in
de variáveis expressão
lista-de-variáveis:
variável
lista de variáveis variáveis ,
variable:
expressão de nome =
de variável
nome-da-variável:
identificador
O seguinte exemplo mostra os resultados intermediários que estão sendo calculados e armazenados em variáveis x
, y
e z
que, em seguida, são usados em um cálculo subsequente, x + y + z
:
let x = 1 + 1,
y = 2 + 2,
z = y + 1
in
x + y + z
O resultado dessa expressão é:
11 // (1 + 1) + (2 + 2) + (2 + 2 + 1)
Os seguintes preceitos são válidos ao avaliar expressões dentro da expressão-let:
As expressões na lista de variáveis definem um novo escopo que contém os identificadores da produção lista-de-variáveis e precisa estar presente ao se avaliar as expressões dentro das produções de lista-de-variáveis. As expressões dentro de lista-de-variáveis podem se referir uma à outra.
As expressões dentro da lista-de-variáveis precisam ser avaliadas antes que a expressão na expressão-let seja avaliada.
A menos que as expressões na lista-de-variáveis sejam acessadas, elas não podem ser avaliadas.
Erros que são gerados durante a avaliação das expressões na expressão-let são propagados.
Uma expressão let pode ser vista como uma simplificação sintática em uma expressão de registro implícita. A seguinte expressão é equivalente ao exemplo acima:
[ x = 1 + 1,
y = 2 + 2,
z = y + 1,
result = x + y + z
][result]