私は現在 F# を学んでいて、いくつかのつまずきにぶつかっています。その多くは、機能的に考えることを学ぶことだと思います。
現時点で私が学んでいることの 1 つは計算式であり、追跡状態を処理する計算式を定義できるようにしたいと考えています。
let myOptions = optionListBuilder {
let! opt1 = {name="a";value=10}
let! opt2 = {name="b";value=12}
}
myOptions
それをにできるようにしたいOption<'T> list
ので、各let!
バインド操作により、ビルダーは定義されたオプションを効果的に「追跡」します。
変更可能な状態を使用してそれを行う必要はありません。たとえば、ビルダーによってリストが維持され、bind
呼び出しごとに更新されます。
これを可能にする方法はありますか?
更新:結果のOption<'T> list
型は代表的なものにすぎません。実際にはOptionGroup<'T>
、リストといくつかの追加情報を含む型がある可能性が高いため、ダニエルが以下で述べたように、単純なリストにリスト内包表記を使用できます。