遅延式Lazy Expressions

レイジー式 は、すぐに評価されるのではなく、結果が必要になったときに評価される式です。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.

構文Syntax

let identifier = lazy ( expression )

解説Remarks

前の構文では、 expression は結果が必要な場合にのみ評価されるコードであり、 identifier は結果を格納する値です。In the previous syntax, expression is code that is evaluated only when a result is required, and identifier is a value that stores the result. 値は型であり Lazy<'T> 、に使用される実際の型 'T は、式の結果から決定されます。The value is of type Lazy<'T>, where the actual type that is used for 'T is determined from the result of the expression.

レイジー式を使用すると、式の実行を、結果が必要な状況のみに制限することで、パフォーマンスを向上させることができます。Lazy expressions enable you to improve performance by restricting the execution of an expressions to only those situations in which a result is needed.

式を強制的に実行するには、メソッドを呼び出し Force ます。To force the expressions to be performed, you call the method Force. Force 実行を1回だけ実行します。Force causes the execution to be performed only one time. 後続のを呼び出すと、 Force 同じ結果が返されますが、コードは実行されません。Subsequent calls to Force return the same result, but do not execute any code.

次のコードは、レイジー式の使用方法との使用方法を示してい Force ます。The following code illustrates the use of lazy expressions and the use of Force. このコードでは、の型 resultLazy<int> で、メソッドはを Force 返し int ます。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 シーケンスにも使用されます。Lazy evaluation, but not the Lazy type, is also used for sequences. 詳細については、「 シーケンス」を参照してください。For more information, see Sequences.

関連項目See also