10. 「Yield」「For」が必要な理由
「可変空間」は宣言された変数のタプルとなる
let や for などが該当する
builder {
let x = 0
custom1 "aaa"
}
let x = 0
builder.Yield(x)
|> fun v -> builder.Custom1(v, "aaa")
builder {
let x = 0
let y = 0
custom1 "bbb"
}
let x = 0
let y = 1
builder.Yield(x,y)
|> fun v -> builder.Custom1(v, "bbb")
16. AllowIntoPattern
intoキーワードの後に変数を宣言するイメージ
これで違和感が消えるかも
builder {
let value1 = 0
custom_f_pp_aip (value1 + 1) into value2
custom_f_pp_aip (value2 + 2)
}
let value1 = 0
builder.Yield(value1)
|> fun v -> builder.CustomFPPAIP(v, fun value1 -> value1 + 1)
|> fun v -> builder.For(v, fun value2 -> builder.Yield(value2))
|> fun v -> builder.CustomFPPAIP(v, fun value2 -> value2 + 2)