Jeśli zdefiniujesz metodę While
obiektu-budowniczego, możesz użyć while
-ups w swoim computation expressions. Podpis metody While
jest:Jaka jest rola `while`-loops w wyrażeniach obliczeniowych w F #?
member b.While (predicate:unit->bool, body:M<'a>) : M<'a>
Dla porównania, podpis metody For
jest:
member b.For (items:seq<'a>, body:unit->M<'a>) : M<'a>
Należy zauważyć, że w While
-method, ciało jest prosty typ , a nie funkcja jak w metodzie For
.
Można osadzić kilka innych instrukcji, takich jak let
i wywołań funkcji wewnątrz wyrażeń obliczeniowych, ale te mogą niemożliwie wykonać w while
-więcej niż jeden raz.
builder {
while foo() do
printfn "step"
yield bar()
}
Dlaczego while
nie -loop wykonywane więcej niż jeden raz, a jedynie powtórzył? Dlaczego znacząca różnica w stosunku do pętli for? Co więcej, czy jest jakaś strategia wykorzystania pętli while w wyrażeniach obliczeniowych?
Nice. Nie wiedziałem o "Run". –