問題タブ [reactive-banana]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - changes が Event t (Future a) を返すのはなぜですか
changes
関数の型はFrameworks t => Behavior t a -> Moment t (Event t (Future a))
です。Future
は抽象的であり、それを使用する関数は 1 つだけです ( reactimate'
)。
ただし、次の関数は簡単に記述できます。
通常の (非Future
) イベントを取得します。
その機能に何か問題がありますか?そうでない場合、元のchanges
関数の型がより制限されているのはなぜですか?
haskell - 反応バナナで単一の切り替えを実行する
を使用してマルチモーダルエディターを構築していますreactive-banana
-そして、ほとんどの場合、それは完璧です。私のシナリオを拡張すると、エディターは何らかのマッピング ソフトウェアであるか、非常に単純なベクター グラフィック エディターと考えることができます。現在、選択モードとポリゴン作成モードの 2 つの状態があります。選択モードでは、ユーザーはマウスの右ボタンで以前に作成したポリゴンを選択することができます (理論的には、新しい選択モードに移動します)。または、マウスの左ボタンで新しいポリゴンの作成を開始できます。
意図は、マウスの左ボタンが押されたときに、選択モードからポリゴン作成モードに切り替えることです。このモードでは、マウスの左ボタンは、ユーザーが元の頂点に戻るまで、「新しい頂点を追加する」ことを意味します。この時点でポリゴンは閉じているので、選択モードに戻ります。
私はこれをいくつかの異なる方法で実装しましたが、最近、イベント スイッチがこれを非常にエレガントにすることに気付きました。私は持てます:
一緒に
これは確かに機能します - マウスを 1 回クリックするだけです。マップを 1 回クリックすると、直前の状態からセクター作成モードに切り替わります。しかし、もう一度クリックすると、defaultMode
はクリック イベントを受け取り、新しいポリゴン作成モードに切り替わり、以前の状態は破棄されます。
私がやりたいことは、defaultMode
一度切り替えて、二度と戻る可能性がないことです. Behavior t Diagram
本質的に、によって生成されたdefaultMode
を の結果と「交換」したいと考えていcreateSectorMode
ます。
reactive-banana
動的イベントのガベージ コレクションに問題があることは理解していますが、今のところ問題はありません。上記の定式化は、これまでに書いたものよりもはるかに正確です。単一のCurrentState
変数を持ち、その内容に基づいてさまざまなイベントをフィルタリングするなどです。私がこれに抱えている問題は、それが大きすぎて、物事を台無しにする余地が多すぎることです. 切り替えることで、私ができるイベントだけをスコープに入れます。
haskell - wxc-0.91.0.0 のインストールに失敗しました
Cabal Sandbox に Reactive-banana、wx、wxcore をインストールしようとしています。を実行するcabal install --only-dependencies
と、次のエラー メッセージが表示されます。
何が問題で、これを解決する方法は?
haskell - リセット可能なアキュムレータの動作?
FRP について頭を悩ませようとしていますが、それが正しいかどうかわかりません。Enterキーが押されるまで、キープレスイベントから文字列を作成したいと思います。Enter キーを押すと、文字列が書き出され、アキュムレータが空の文字列にリセットされます。
Char
キーボードのキーが押されるたびにを発行するイベント ソースがありePressed
ます。まず、重要な 2 種類のキー プレスを分離します。
これで、送信したいものにそれらをまとめる方法がわかりました。
しかし、Enterキーが押されるまでこれを「保持」する方法、または後でリセットする方法がわかりません。これを行うための正しい、偶像的な方法は何ですか?