問題タブ [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.

0 投票する
1 に答える
117 参照

haskell - changes が Event t (Future a) を返すのはなぜですか

changes関数の型はFrameworks t => Behavior t a -> Moment t (Event t (Future a))です。Futureは抽象的であり、それを使用する関数は 1 つだけです ( reactimate')。

ただし、次の関数は簡単に記述できます。

通常の (非Future) イベントを取得します。

その機能に何か問題がありますか?そうでない場合、元のchanges関数の型がより制限されているのはなぜですか?

0 投票する
1 に答える
202 参照

haskell - 反応バナナで単一の切り替えを実行する

を使用してマルチモーダルエディターを構築していますreactive-banana-そして、ほとんどの場合、それは完璧です。私のシナリオを拡張すると、エディターは何らかのマッピング ソフトウェアであるか、非常に単純なベクター グラフィック エディターと考えることができます。現在、選択モードポリゴン作成モードの 2 つの状態があります。選択モードでは、ユーザーはマウスの右ボタンで以前に作成したポリゴンを選択することができます (理論的には、新しい選択モードに移動します)。または、マウスの左ボタンで新しいポリゴンの作成を開始できます。

意図は、マウスの左ボタンが押されたときに、選択モードからポリゴン作成モードに切り替えることです。このモードでは、マウスの左ボタンは、ユーザーが元の頂点に戻るまで、「新しい頂点を追加する」ことを意味します。この時点でポリゴンは閉じているので、選択モードに戻ります。

私はこれをいくつかの異なる方法で実装しましたが、最近、イベント スイッチがこれを非常にエレガントにすることに気付きました。私は持てます:

一緒に

これは確かに機能します - マウスを 1 回クリックするだけです。マップを 1 回クリックすると、直前の状態からセクター作成モードに切り替わります。しかし、もう一度クリックすると、defaultModeはクリック イベントを受け取り、新しいポリゴン作成モードに切り替わり、以前の状態は破棄されます。

私がやりたいことは、defaultMode一度切り替えて、二度と戻る可能性がないことです. Behavior t Diagram本質的に、によって生成されたdefaultModeを の結果と「交換」したいと考えていcreateSectorModeます。

reactive-banana動的イベントのガベージ コレクションに問題があることは理解していますが、今のところ問題はありません。上記の定式化は、これまでに書いたものよりもはるかに正確です。単一のCurrentState変数を持ち、その内容に基づいてさまざまなイベントをフィルタリングするなどです。私がこれに抱えている問題は、それが大きすぎて、物事を台無しにする余地が多すぎることです. 切り替えることで、私ができるイベントだけをスコープに入れます。

0 投票する
1 に答える
109 参照

haskell - wxc-0.91.0.0 のインストールに失敗しました

Cabal Sandbox に Reactive-banana、wx、wxcore をインストールしようとしています。を実行するcabal install --only-dependenciesと、次のエラー メッセージが表示されます。

何が問題で、これを解決する方法は?

0 投票する
1 に答える
80 参照

haskell - リセット可能なアキュムレータの動作?

FRP について頭を悩ませようとしていますが、それが正しいかどうかわかりません。Enterキーが押されるまで、キープレスイベントから文字列を作成したいと思います。Enter キーを押すと、文字列が書き出され、アキュムレータが空の文字列にリセットされます。

Charキーボードのキーが押されるたびにを発行するイベント ソースがありePressedます。まず、重要な 2 種類のキー プレスを分離します。

これで、送信したいものにそれらをまとめる方法がわかりました。

しかし、Enterキーが押されるまでこれを「保持」する方法、または後でリセットする方法がわかりません。これを行うための正しい、偶像的な方法は何ですか?