問題タブ [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 - タプル 2 のイベント ストリームを 2 つのストリームに解凍する
リアクティブバナナでは、 が与えられたEvent t (a, b)
場合、どのように に導きます(Event t a, Event t b)
か?
Traversable#sequence
提供されたMonad
forのいくつかのインスタンスでそれを解決するようですが、それは.(,)
Event t
Functor
haskell - リアクティブバナナ: 状態モナドかどうか?
Reactive Banana に基づくインターフェイス (WX) があります。現在、ステータスを実際に管理する方法についてさまざまな質問があります。
Behavior
状態をコードで定義した s と見なす必要がありますか?状態が外部の「イベント」にも依存する場合、GUI に関連するだけでなく、IORef を検討する方がよいでしょうか?
または、ステートモナドを使用できますか? これまでに見たすべての例は、IO 環境でネットワークを定義しています。センススタックは
State Monad
ありますか?とMoment
?
haskell - Reactive Banana: データの変更ステータス
Int
法線を使用してカウンター ステータスを維持するReactive Banana Wx のカウンターの例から始めます。
Int
カウンターをより一般的なものに置き換えて更新するにはどうすればよいですかdata
:
count
次のような内部関数を参照する方法がわかりません。
何か案が?
haskell - Reactive Banana: リモート API の値を使用してイベント ストリームにマージする方法
WX インターフェイスで Reactive-Banana を使用しています。ボタンが押されたときに、外部サービス API から値を取得する必要があります。
関数変換に基づいて変換された変更を「蓄積」するBehavior
データ型に基づくジェネリックがあります ( )。変換された値はイベントによって転送され、インターフェイスのボタンが押されたときにリモート API ( ) から取得されます。重要な部分を表すコードのスリムなバージョンを作成しました。AppState
doSomeTransformation
getRemoteValue
そしてカバールのconf:
ここでの問題は、リモート API 値を通常のイベント値として使用できるように構成する方法です
doSomeTransformation
。バナナ反応性から次の署名があります。myRemoteValue
changes
IO Int
fromをラップしgetRemoteApiValue
ます。
だから基本的に私はどのように私はから行くことができます:
?
ところで、この異なる関数シグネチャを持つ方がきれいかどうかはわかりません:
doSomeTransformation :: Int -> AppState -> AppState
、Int
値は API の戻り値で表されます。Behavior
2 つの と 1 つのストリームのように聞こえます。問題を解決するための悪い方法でしょうか?
haskell - ポリモーフィック関数のイベント ストリームを作成する - 可能ですか? はいの場合、どのように?
私は現在、reactive-banana を使用して FRP を学習しており、ランダム関数のストリームを作成したいと考えていました。私はこれを思いついた:
それはうまくいくようです、私はこのように使うことができます:
しかしもちろん、そのストリームを共有して別のタイプの数値を生成しようとすると、次のようになります。
タイプチェッカーが不平を言っていますが、それは理解しています。次に、関数を次のように一般化しようとしました。
その後、GHC は不正なポリモーフィック シグネチャと、ImpredicativeTypes を有効にするかどうかについて不平を言いました。私はそれを実行し、かなり長い間すべてに注釈を付けて機能させようとしましたが、GHC は常に型に一致しないと不満を漏らしていました。
私の質問は - 私がやりたいことをすることは可能ですか? そのためにImpredicativeTypesが本当に必要ですか、それとも間違っていますか?
RankNTypes で十分だと思いましたが、そのような拡張機能の経験はまだありません。
前もって感謝します!
編集:
記録のために、役立つ応答に基づく私の解決策は次のとおりです。