let

Let 式

Let 式を使用すると、変数内の中間計算から値をキャプチャできます。

let-expression:
      letvariable-listinexpression
variable-list:
      変数
      variable
,variable-list
variable:
      variable-name
=expression
variable-name:
      identifier

次の例では、中間結果が計算され、変数 xyz に格納され、後続の計算 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 内の式を評価するとき、次が当てはまります。

  • 変数一覧の式により、variable-list 作成からの識別子を含む新しい範囲が定義されます。また、変数一覧の式は、variable-list 作成内の式の評価時に存在する必要があります。 variable-list 内の式は互いを参照することがあります。

  • variable-list 内の式は、let-expression の式が評価される前に評価する必要があります。

  • variable-list の式がアクセスされない限り、式は評価できません。

  • let-expression の式の評価中に発生したエラーが伝えられます。

Let 式は、暗黙的なレコード式の見た目を構文的に改善するものと見なすことができます。 次の式は上の例に相当します。

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