While
ビルダーオブジェクトのメソッドを定義する場合は、計算式while
で-loopsを使用できます。メソッドのシグネチャは次のとおりです。While
member b.While (predicate:unit->bool, body:M<'a>) : M<'a>
比較のために、For
メソッドのシグネチャは次のとおりです。
member b.For (items:seq<'a>, body:unit->M<'a>) : M<'a>
While
-methodでは、本体は単純な型であり、For
メソッドのような関数ではないことに注意してください。
let
計算式の中に関数呼び出しなどの他のステートメントを埋め込むことはできますが、それらはループ内while
で複数回実行することは不可能です。
builder {
while foo() do
printfn "step"
yield bar()
}
while
-loopが複数回実行されず、単に繰り返されるのはなぜですか?なぜforループとの大きな違いがあるのですか?さらに良いことに、計算式でwhileループを使用するための意図された戦略はありますか?