Поделиться через


Let

Выражение Let

Выражение let можно использовать для записи значения из промежуточного вычисления в переменной.

let-expression:
      letпеременная списка in выражение
список переменных:
      переменная
      переменная списка переменных
,
variable:
      Выражение переменной имени
=
имя переменной:
      идентификатор

В следующем примере показаны промежуточные результаты, вычисляемые и хранящиеся в переменных x, yа z затем используемые в последующем вычислении x + y + z:

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

Результатом этого выражения является следующее:

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

При оценке выражений в выражении let-expression следует учитывать следующее:

  • Выражения в списке переменных определяют новую область, содержащую идентификаторы из рабочей среды переменных и должны присутствовать при оценке выражений в рабочей среде переменных списка . Выражения в списке переменных могут ссылаться на одно другое.

  • Выражения в списке переменных должны оцениваться перед вычислением выражения в выражении let-expression .

  • Если к выражениям в списке переменных не обращаются, их не следует оценивать.

  • Ошибки, возникающие во время оценки выражений в выражении let-expression , распространяются.

Выражение let можно рассматривать как синтаксический сахар по неявным выражениям записи. Следующее выражение эквивалентно приведенному выше примеру:

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