2009-07-16 9 views
1

イベントはF#のシーケンスとよく似ています。シーケンスでシーケンス式を使用できます。イベント用の同様のビルダーはありますか?私はそれを見つけることができませんでした。F#イベント用のビルダーはありますか?

存在しない場合は、どうしてですか? (それは不可能か、または適切ではないのでしょうか?)答えがまだ実装されていないということなら、私は試してみるつもりです。

ジュール

+0

あなたは少しタイトルを明確にすべきです。 「Builder」は非常に一般的な用語です。私はあなたが "カスタムワークフロー"または "計算式ビルダー"を意味すると思います。 – Joh

答えて

2

ここではsome researchを行っており、これは結実的な道のりです。

+0

ありがとうございました。私は非同期ビルダーの中で機能を提供することを考えていませんでした。それはスマートです!また、トマスのウェブサイトのリンクに感謝しています。 イベント用のバインドとリターンを定義できますか?私はちょっと考えたのですが、満足できる答えが見つからなかったのです。たとえば、 'event {let! a = eventA in a + 2} 'は' map(fun a - > a + 1)eventA'と同じことをします。しかし、 'イベント{let! let!のa = eventA b =戻り値のa + b} 'の意味ですか? しかし、到着した最後のイベントをキャッシュすると、CellsまたはFRPのように時変値が得られることがわかりました。 – Jules

+0

これらのセルについては、ビルダーを定義できます。ここまでは私がこれまで持っていたものです:http://fsharpcells.codeplex.com/。私はコメントを聞いてみたい。 – Jules

0

配列については、それは完全に無意味になるイベントのために、プロセスにオブジェクトのグループを作成することは理にかなっていますが。出来事は外部で起こっていることへの反応を提供する手段に過ぎないと考えてください。イベントビルダーは必要ありません。 何らかの処理を行うイベントハンドラがある場合は、ロジックとイベント処理を別々の関数に簡単に分割して、実際に生成できるデータにあらかじめ既知のルールや既知の方法で適用することができますorder(実際には配列式を使用することができます)。

1

は多分これは役立ちます:カスタムイベントを作成する方法について

チェックEvents in F#。次に、シーケンスを作成し、マップし、フィルタリングして反復することができます。

関連する問題