(式: OCaml 1.06 〜、パターン: OCaml 3.11 〜)
式 lazy expr
は expr の計算をカプセル化した Lazy.t
型の値 v
を返します。 expr はこの時点では評価されません。代わりに、 Lazy.force
を v
に適用したところで評価が行なわれ、 expr の実際の値が返ります。それ以降 v
に Lazy.force
を適用しても expr が再度評価されることはありません。 Lazy.force
の適用はパターンマッチにより暗黙に行なわれることもあります。
パターン lazy pattern
は Lazy.t
型の値 v
で、 pattern が v
に Lazy.force
を適用したものにマッチするものにマッチします。 lazy
を下位パターンとして持つパターンがマッチすると、 lazy
パターンとマッチした部分の値が Lazy.force
されます。これは、 lazy value-name
や lazy _
のように、値に対するテストを行なわない場合でも同じです。下位パターンとして lazy
パターンを含む pattern-matching に値をマッチさせた場合、最終的にマッチしたパターンに lazy
パターンが含まれない場合でも、値の一部が暗黙に Lazy.force
されることがあります。
より詳しくは、標準ライブラリの Lazy モジュールを参照してください。