問題タブ [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 - react-banana-wx `sink` はポストシンク処理を有効にするイベントを生成しません
現在、reactive-banana および react-banana-wx パッケージを使用して、従来の wxHaskell の一部を再設計しています。ただし、動的なネットワーク構築 (MVar でスレッド ブロックに遭遇した場合) を回避するために、必要に応じて可視性を設定する wxHaskell ウィジェットの固定セットを事前に構築することで、これを模倣しています。可視性は、sink
を取る関数によって設定されBehavior
ます。ただし、wxHaskell では、これらすべてのウィジェットが を介して適切に変更された後、これらのウィジェットをsink
保持するパネルのレイアウトを引き続き変更する必要があります。つまり、sink
-ing は実際にはネットワークの一部であるべきであるため、トリガーしてレイアウトの変更を待機できるイベントです。現在のように、sink
sink
アクションが完了した後にイベントをトリガーすることはできません。私はこのようなものに適応しようとしましたsink
:
ただし、unsafePerformIO
実行されませんでした。目的の動作を実現するにはどうすればよいですか。つまり、(wxHaskell) IO を によって待機できるようにするにはどうすればよいEvent
ですか?
events - 従来のFRPフレームワークと比較したNetwireでのイベント処理
AFRP、Yampa、Reactive-bananaなどのほとんどのHaskell FRPフレームワークは、連続的な時変関数と個別の関数を区別します。通常、彼らはそれらを行動やイベントと呼びます。
1つの例外は、イベントをモデル化するために抑制モノイドを使用するNetwireです。そのようなアプローチの長所と短所は何ですか?
特に、ロボット制御へのFRPの応用に興味があります。たとえば、このペーパーhttp://haskell.cs.yale.edu/?post_type=publication&p=182は、イベントを使用してFRPでタスクとHSM抽象化をエンコードする方法を示しています。これを直接Netwireに変換できますか?
haskell - Haskell はコンテキスト (フレームワーク t) から (t ~ t1) を推測できません
私は Reactive Banana と呼ばれる Haskell FRP ライブラリの使用方法を学んでいますが、Haskell の一般的な使い方もかなり新しいものです。現在、ネットワークをパラメーターとして受け取る関数を作成しています。関数本体では、ネットワークをコンパイルしてそのイベントループを通過する前に初期化を行いますが、Haskell が何をしようとしているのかを推測できないという問題があります。行う。
ここにコードの縮小版があります
私が得ている正確なエラーはこれです。
インターネットを検索すると、start 関数のフレームワークと setupNetwork 関数のフレームワークの間の型は同じ型とは見なされないと思います。
タイプを一致させる方法はありますか?
haskell - Reactive-Banana での動的イベント切り替え
私は現在、リアクティブ バナナと SDL を利用した小さなゲームに取り組んでいます。目標は主にリアクティブ バナナと FRP についてさらに学習することであるため、動的切り替えを使用してゲーム オブジェクトのコレクションをセットアップしようとしましたが、これまでのところあまり成功していません。
Bartab の例では、私が見つけたイベント切り替えを使用する唯一の例であり、コレクション内の新しいエントリの作成を最終的にトリガーするイベントは、内部イベントを使用する代わりに、イベント ネットワークの外部から取得されます。私の質問は、これが唯一の方法ですか、それともこの例の特殊なケースですか?
リアクティブバナナで使用されている動的イベントスイッチングの例は他にありますか?
私が理解していることから、瞬間t(いつでも振る舞いa)を取得し、実行を使用してイベントt(いつでも振る舞いa)を作成し、次にコレクションを運ぶ振る舞いを更新するために使用されます。瞬間 t (Anytime Behavior a) は、トリガー イベントから作成された Behavior で trimB を使用して作成されます。このトリガー イベントがイベント ネットワークで発生した場合、「Could not deduce (t ~ t1)」というエラー メッセージが表示されてコンパイルされません。~ が正確に何を意味するのかはわかりませんが、イベント ネットワークの 2 つのフレームワーク値 (t) とこの新しいモーメント値が異なるため、明らかにエラーがスローされます。
つまり、簡単に言うと、リアクティブ バナナのイベント スイッチングがどのように機能するのか理解できず、その理由もわかりません。理論的には比較的簡単なはずです。
編集:
通常のイベントを使用して新しい動作を作成するだけで、例から newEntry / eNewEntry をミラーリングしようとしました。これにより、spawnPos で「Could not deduce (t ~ s)」エラーが発生します。
編集2:
動作しますが、execute を使用してイベントを作成する行に同じエラーが表示されます。「t ~ t1 を推測できませんでした」
haskell - react-banana reactimateは、textCtrlGetValueのようなウィジェットtextCtrl値を取得します
ウィジェットの値を取得したいのですが。
以下では、ボタンbを押してs_inを取得し、ネイティブwxhaskellで印刷します。
私はreactive-bananaでも同じことをするのが好きですが、以下では、s_in2のtextCtrlGetValueではなく「ff」を取得します。
シンクはs_inの後にsin_2を更新します。しかし、次の反応行では、取得したいs_in/b_inのtextCtrlGetValueが取得されません。どうすればそれを「取得」できますか?
haskell - モデルと GUI IO (Wx) の分離状態: スタックか FRP か?
私の作図ツールでは、コア モデルのコードを GUI から切り離したいと考えています。
次の例では、「状態」は で渡されvDiag
ますTvar
。これは wx の設計上の決定です。ここで、私の作図ツールでは、コア モデルをfgl
グラフに "格納" し (複雑な型を含む)、wx
ビューのみを与えたいと考えています。この例では、ペイント時の読み取りアクセス用のポイントのリストと、クリック、ドラッグなどの際に書き込むいくつかの関数を言います.. 最初に Monad スタックをいくつか考えましたが、StateT と wx の IO を組み合わせることさえ簡単ではないように見えます。これは、io アクションがコールバックのコード全体に広がっているためです (クリック時、ペイント時など)。スタックの一番下に IO を配置するのがうまくいかなくなったように感じます。
それで、どのようにSTateを渡すのですか、それとも行く方法ではありませんか?(私は直感的にこれは古典的です。RFP はどのように始まったのでしょうか?)
(クリックすると赤い円を描くコードでは、ポイントのリストが で渡されTvar
vDiag
ます。同等の状態アクセサーが移動する場所に「--fgl」をタグ付けし、基本的な fgl テスト グラフ アクセサーを設定します。 State に入れたいと思います) (元々、問題を理解するために FRP なしで試してみました - 反応性バナナですが、既にヒットしている可能性があります ;-)
haskell - Event と Behavior の初期値が同じであることに問題はありますか?
以下のコードには満足できないものがあります。開発するにつれてbGameState
、さらにイベントを追加します。playerInputE
(そして私は other を想像します) が同じ初期値を共有しているという事実はEvents
問題につながりますか? 言い換えれば、私の最初の設計は、構築するのに十分な音ですか?
また、使用に代わるものはありchanges
ますか? 正しい使用基準を満たしていると思いますが、よくわかりません。
haskell - WxHaskell と DragAndDrop: dropTargetOnData、dropTargetOnDrop、dropTargetOnEnter、dropTargetOnDragOver をトリガーするカスタム イベントを作成する方法
WxHaskell と DragAndDrop
次のイベント ハンドラーの使用方法を知りたい: dropTargetOnData、dropTargetOnDrop、dropTargetOnEnter、dropTargetOnDragOver….[1]
私の現在の信念が正しいかどうかを確認していただけますか:
- wx Widgets/ wxPython [2] / [3] / [4] から、重要な例の DragAndDrog を管理するために使用する必要があるようです。
- 「ドラッグ中」などの既存のイベントを介して実行することはできません。
- 独自のイベントを作成してみました。しかし、それは「アクティブ化」されません。[7]
- さらに、シグネチャ [1] から、これらは Reactive/ Windows/Controls の他のイベントとは異なり、DropTarget でアクティブ化されているように見えます。それが正しいか ?
Heinrich は独自のイベント「onText」を (リアクティブ バナナで) 作成しましたが、これはコントロール上にあります。[6]
これらのイベントが WxHaskell で効果的に機能したことを誰かが確認できますか。
[1]:
from Graphics.UI.WXCore.Events , line 1933 onwards
Set an event handler that is called when the drop target can be filled with data. This function require to use 'dropTargetGetData' in your event handler to fill data. dropTargetOnData :: DropTarget a -> (Point -> DragResult -> IO DragResult) -> IO () ...
-- | Set an event handler for an drop command in a drop target. dropTargetOnDrop :: DropTarget a -> (Point -> IO Bool) -> IO ()
-- | Set an event handler for an enter command in a drop target. dropTargetOnEnter :: DropTarget a -> (Point -> DragResult -> IO DragResult) -> IO ()
-- | Set an event handler for a drag over command in a drop target. dropTargetOnDragOver :: DropTarget a -> (Point -> DragResult -> IO DragResult) -> IO ()
-- | Set an event handler for a leave command in a drop target. dropTargetOnLeave :: DropTarget a -> (IO ()) -> IO ()
[2] : http://docs.wxwidgets.org/2.8/wx_wxdroptarget.html#wxdroptargetondrop
[3] : http://wiki.wxpython.org/DragAndDrop
[4] : http://www.blog.pythonlibrary.org/2012/06/20/wxpython-introduction-to-drag-and-drop/
[5] : http://wewantarock.wordpress.com/2011/06/17/how-does-wxhaskell-event-handling-work-part-1/
[7] :
module Main where
haskell - リアクティブ バナナと gtk2hs を使用したリアクティブ テーブル
TV シリーズの進行状況を追跡する小さなアプリケーションを作成しました。アプリケーションは Haskell で書かれており、関数型リアクティブ プログラミング (FRP) とリアクティブ バナナが使用されています。
アプリケーションは次のことができます。
- テーブルへの新しい TV シリーズの追加/削除
- シリーズのシーズンとエピソードを変更する
新しい TV シリーズをテーブルに追加し、新しいイベントを関連付けるコードを書くのに問題があります。リストから要素を選択するだけでなく、より多くの要件があるため、ここの CRUD の例はあまり役に立ちませんでした。
CRUD の例reactiveTable
の関数のようなreactiveListDisplay
関数をFRP の方法で作成するにはどうすればよいですか? ネットワークがコンパイルされた後、削除ボタンとシーズンとエピソードのスピン ボタンにイベントを追加するにはどうすればよいですか?
単純なコールバックを使用するのではなく、イベントと動作を使用するように insertIntoTable メソッドをリファクタリングしたいと考えています。
編集:
ListStoreバックエンドでgtk TreeViewを試しました。このシナリオでは、動的なイベント スイッチングは必要ありません。挿入、変更、および削除イベントからリストの動作を取得するために、以下の関数を作成しました。効きます^^reactiveList
コメントや提案をお待ちしています。