計算式がどのように機能するかについてさらに学習するために、ステートメントのthenブロックを評価した後に式の残りをスキップするビルダーをコーディングしようとしています。これにより、ワークフロー自体が. どのステートメントも に評価されない場合、ワークフローは返されます。iftruefalseiftrue
例えば:
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。
これは、私の例の構文を使用して実行できますか?