遅延計算 (F#)
遅延計算は、すぐには評価されず、結果が必要なときに評価される計算です。これは、コードのパフォーマンスの向上に役立ちます。
let identifier = lazy ( expression )
解説
前の構文では、expression は結果が必要なときにのみ評価されるコードであり、identifier は結果を格納する値です。値は Lazy<'T> 型で、'T に使用される実際の型は、式の結果から判断されます。
遅延計算によって、結果が必要な場合にのみ計算を実行するように制限することで、パフォーマンスを向上できます。
計算の実行を強制するには、Force メソッドを呼び出します。Force を使用すると、計算が 1 回だけ実行されます。その後に呼び出した Force では、同じ結果が返されますが、コードは実行されません。
遅延計算の使用と、Force の使用を次のコード例に示します。このコードでは、result の型は Lazy<int> であり、Force メソッドでは int が返されます。
let x = 10
let result = lazy (x + 10)
printfn "%d" (result.Force())
Lazy 型ではない遅延評価もシーケンスに使用されます。詳細については、「シーケンス (F#)」を参照してください。