Lazy expressions
are expressions that are not evaluated immediately, but are instead evaluated when the result is needed. This can help to improve the performance of your code.let identifier = lazy ( expression )
<'T>
, where the actual type that is used for 'T
is determined from the result of the expression.force
the expressions to be performed, you call the method Force
. Force
causes the execution to be performed only one time. Subsequent calls to Force return the same result, but do not execute any code.lazy
expressions and the use of Force. In this code, the type of result is Lazy<int>
, and the Force method returns an int.let x = 10
let result = lazy (x + 10)
printfn "%d" (result.Force())
Lazy evaluation, but not the Lazy type
, is also used for sequences.