拡張計算式とは、CustomOperation属性で定義されたカスタム キーワードを使用した計算式のことです。
拡張された計算式について読んでいるときに、@kvb による非常にクールな IL DSL に出くわしました。
let il = ILBuilder()
// will return 42 when called
// val fortyTwoFn : (unit -> int)
let fortyTwoFn =
il {
ldc_i4 6
ldc_i4_0
ldc_i4 7
add
mul
ret
}
コンストラクトを使用せずに操作がどのように構成されているのだろうかfor..in..do
。私の直感では、それはx.Zero
メンバーで始まるということですが、それを確認するための参照は見つかりませんでした.
上記の例が技術的すぎる場合は、スライドのコンポーネントが なしでリストされている同様の DSL を次に示しますfor..in..do
。
page {
title "Happy New Year F# community"
item "May F# continue to shine as it did in 2012"
code @"…"
button (…)
} |> SlideShow.show
密接に関連する質問がいくつかあります。
- メンバーなしで拡張された計算式をどのように定義または使用しますか
For
(つまり、小さな完全な例を提供します)? それらがもはやモナドでなくても、私はあまり心配していません。DSL の開発に興味があります。 let!
とで拡張計算式を使用できますreturn!
か? はいの場合、そうしない理由はありますか?let!
と を使用した例に遭遇したことがないため、これらの質問をしreturn!
ます。