計算式がどのように機能するかについてさらに学習するために、ステートメントのthen
ブロックを評価した後に式の残りをスキップするビルダーをコーディングしようとしています。これにより、ワークフロー自体が. どのステートメントも に評価されない場合、ワークフローは返されます。if
true
false
if
true
例えば:
let mutable x = 0
let result =
earlyExit {
if false then x <- 99
if true then x <- 33
if true then x <- 11
}
ここでは、 でresult
ある必要がありtrue
、 でx
ある必要があります33
。
私が得た最も近いものは次のとおりです。
type EarlyExitBuilder () =
member this.Combine (a, b) = a || b ()
member this.Delay fn = fn
member this.Run fn = fn ()
member this.Zero () = false
...これにより、ワークフローがfalse
、およびx
に評価されます11
。
これは、私の例の構文を使用して実行できますか?