問題タブ [frp]
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 - Haskell FrpパッケージのWindowsインストール?
Windows にリアクティブなバナナ パッケージをインストールしようとしましたが、ほとんど成功しませんでした。パッケージについては知っているようですが、インストールに失敗します。ヒントはありますか?
OK、すべての wx-stuff をインストールしました - いくつかの手順を実行しました。wx-config、wxWidgets の順にインストールし、Haskell パーツ (wx、wxcore、reactive-banana.wx) をインストールします。しかし、基本的な Reactive とカテゴリ エクストラは、上記のように失敗します。- カテゴリ エクストラの 99 のステップ 39 が失敗します。
アップデート:
Haskell の Wx ユニバースは少し混乱しています。これに関する多くの注意事項と、Windows での wx & wxHaskell に関する問題の説明、古いバージョンの GHC が必要な提案などがあります。コードは現在の MSoft コンパイラと互換性がないため、他のコンパイラのインストールが必要になるなどです。全体として数時間突っついた後、私にはかなりがっかりしました。wx-config、wxPack、wxWidgets、wxHaskell、そして cabal wx & wxcore; からインストールしました。すべてが成功を報告しましたが、それでも失敗しました (wxmsw28_gcc.dll が見つかりません; ライブラリにはあります)。彼らの最初のテスト (サンプル/コントロール...) は失敗します。wxWidgets と wxHaskell のページでは、すべてのサンプル リンクとその他多くのリンクが壊れています。再起動後 (?!)、いくつかのテストを実行しているように見えるので、成功することを期待しています。
私は魔法の「apt-get install」のような体験を望んでいました。
FRP の場合 -- FRP の例 (leksah 内) では、「リンク先が見つかりません...」というエラー メッセージが多数表示されますが、今のところ実行されています。
全体として、私の経験からすると、wxHaskell と FRP は Windows では使いにくいようです。Haskell の使いやすさと有用性の良い例として、私がクラスに割り当てるようなものではないことは確かです! :-)
これらのパッケージに含まれるすべての複雑さと作業に感謝します。文句を言うつもりはありません。ただの体験レポートです。おそらく、wxHaskell パッケージは一般的に使用されていないか、..??
haskell - Haskell:FRPリアクティブパーセク?
ParsecHaskellにリアクティブ(または他の純粋な関数型パーサー)はありますか(または持つことは可能ですか)?
簡単に言えば、パーサーにcharごとにフィードして、出力を取得するのに十分な量の結果を取得したいと考えています。
または、もっと簡単に、どうすればそれを実行できますfoldrかmap?
そのような反応的な振る舞いをサポートするために、それらの異なるバージョンが必要ですか?
編集
私の質問は特にFRPについてです。例としてパーサーを使用しました。これは、質問を明確にし、必要なものの全体像を示すために考えられる最善の方法でした。
FRPはUIだけではないと思いますよね?
haskell - 私は反応バナナを正しく使用していますか?
これは、reactive-banana ライブラリを使用した Haskell FRP プログラムの例です。私は Haskell について自分のやり方を感じ始めたばかりで、特に FRP が何を意味するのかがよくわかりません。以下のコードに対する批評をいただければ幸いです
ここに要点があります: https://gist.github.com/1099712。
これが accumE の「良い」使用法であるかどうかについてのコメントを特に歓迎します (この関数が毎回イベント ストリーム全体をトラバースするかどうかはわかりませんが、そうではないと思います)。
また、複数のソケットからメッセージを取り込む方法を知りたいです-現時点では、永遠に1つのイベントループがあります。この具体的な例として、カウンター内の IdMap の現在の状態を照会するために、2 番目のソケット (zeromq 用語の REQ/REP ペア) を追加するにはどうすればよいでしょうか?
programming-languages - 関数型リアクティブプログラミングの「信号」表現は正しいですか?
私はFRPを研究していて、さまざまな実装を見つけました。私が見たモデルの1つは、「信号」表現と呼ぶモデルです。この重要な要素は、イベントと動作を1つのエンティティに結合します。
まず、Signalは、値がBehaviourであるオブジェクトです。次に、Signalにはイベント「ストリーム」があり、標準のデータ構造として表示および操作できます(Signalで「each」、「map」、「filter」などを使用して、イベントの反応を定義できます)。たとえば、これを行うことができます(「time」は時間のシグナル表現です)。
このFRPの表現は正しいですか、それとも問題がありますか?私はこれが機能する方法と、個人的に説明するのがいかに簡単であるかがとても好きですが、それが正しいかどうかはわかりません。
user-interface - FRPはトップレベルでどのように機能する必要がありますか?
私はScala用の関数型リアクティブプログラミングフレームワークの作成を実験してきました。現時点で私が混乱していることの1つは、現在の実装がトップレベルでの動作の表現をどのように処理しているかということです。私が何を意味するのかを説明するために、例を挙げましょう。私がJPanelを持っていて、これを実行したいとします。
ここでは色は静的ですが、Behaviorの値が更新されたときにパネルの背景を更新する必要があります。私がこれまでに行ってきた方法は、基本的に、イベントを使用して離散化されたビヘイビアーを作成することです(ビヘイビアーのchanges関数を介してアクセスできます)。これは基本的に、動作が変更されるたびに発生する単なるイベントソースです。これを使用すると、ここでのsetBackgroundの実装は次のようになります。
これはちょっと厄介な感じがします。これが悪いアプローチであるかどうかについて誰かが何か提案がありますか?今日はエリオットのプッシュプルFRPを見てきましたが、正しい方向に進んでいるように感じますが、どこかで道に迷っています。
編集:誰も明確な明確な解決策を持っていない場合は、アイデア/考えは素晴らしいでしょう!
c++ - ゲームエンジンのFRP。その価値はありますか?
今日、私はFRP(関数型リアクティブプログラミング)について読みました。しかし、これがエンジン自体にどれだけ適合するかはわかりません。
Gerold Meisingerの記事を読んだ後、私の質問は、コンポーネントベースのアーキテクチャの代わりにFRPを使用する価値があるかどうかです。これはゲームエンジンアーキテクチャ設計の近い将来ですか?これは、コンポーネントベースのアーキテクチャが行う小さな問題を解決するための単純なアプローチですか?記事、説明、個人的な意見などをいただければ幸いです。
商用ゲーム、特にシューティングゲームやレーシングジャンル(3Dゲーム)用のエンジンについて考えてみてください。2Dプラットフォーマーやその他のより単純な(エンジンの複雑さについて話す)ものについては考えないでください。私はC/C ++を使用します(FRPを使用している人はその性質上Haskellに依存していることに気付きました。しかし、このドキュメントを見て、「業界標準」としてC ++を使用することを好みます)。
testing - Haskell: (リアクティブ) FSM をクイックチェックでテストする方法は?
現在取り組んでいる小さなサッカー ゲーム用の有限ステート マシン モジュールを作成しました。FSM (基本的にその状態と遷移) を設定するためのインターフェイスを提供します。状態ごとに、開始時と終了時に起動される関数を提供できます。または、FSM が同じ状態のままである間にこれらの関数がいくつかのメッセージを返します。また、時変状態を生成し、時間の経過とともに発生するメッセージを収集するリアクティブ インターフェイス (Yampa) も提供します。コードはData/FSM.hsにあります。
このモジュールをテストする良い方法を探しています。純正なので、クイックチェックしてみようと思いました。私はクイックチェックの経験がないので、ヒントをいただければ幸いです。これまでの私の基本的な理解: FSM を多かれ少なかれランダムに構築するいくつかの関数を提供し、それらに対していくつかの (再び多かれ少なかれランダムな) 遷移を実行します。しかし、そのようにテストを構築する方法がよくわかりません...
haskell - FRPで動作(およびその他のタイプ)を適用する場所
私はreactive-bananaを使用したプログラムに取り組んでおり、基本的なFRPビルディングブロックを使用してタイプを構造化する方法を考えています。
たとえば、実際のプログラムの簡単な例を次に示します。たとえば、システムが主にウィジェットで構成されているとします。プログラムでは、時間の経過とともに変化するテキストの断片です。
ができた
しかし、私も持つことができます
Behavior Widget時変の振る舞いについて話したいときに使用します。これにより、作業が「簡単」になり、Behaviorウィジェットを解凍して再パックするのではなく、操作をより直接的に使用できるようになります。
一方、前者は、ほとんどすべてのウィジェットが時間の経過とともに変化するため、実際にウィジェットを定義するコードの重複を回避しているようです。また、ウィジェットをBehavior組み合わせることで、ウィジェットを定義しないものもいくつか定義していることに気付きます。より一貫した方法で他のもの。
別の例として、両方の表現で、インスタンスを持つことは理にかなっていMonoidます(そして、私はプログラムにインスタンスを持ちたいです)が、後者の実装はより自然に見えます(リストモノイドをニュータイプに簡単に持ち上げるだけなので) )。
(私の実際のプログラムではではDiscreteなくを使用Behaviorしていますが、それは適切ではないと思います。)
同様に、Behavior (Coord,Coord)またはを使用(Behavior Coord, Behavior Coord)して2Dポイントを表す必要がありますか?この場合、前者は当然の選択のようです。しかし、それがゲーム内のエンティティのようなものを表す5要素のレコードである場合、選択はあまり明確ではないように思われます。
本質的に、これらの問題はすべて次のようになります。
FRPを使用する場合、どのレイヤーでBehaviorタイプを適用する必要がありますか?
Event(程度は低いですが、同じ質問が当てはまります。)
haskell - 反応性バナナ:行動の最新の値を含む発火イベント
起動時に2つのことを実行したいイベントトリガーがあるとします。まず、いくつかの動作の値を更新する必要があります。次に、他の条件が満たされた場合、動作の更新された値で別のイベントsend_offを発生させたいと思います。コード形式で表現され、私が持っていると仮定します
次に、質問は次のとおりです。??????に何を入れますか これにより、send_offは動作の最新の値を送信します。これは、適用されたばかりのトリガーからの更新を含む値を意味します。
残念ながら、私が正しく理解していれば、Behaviorのセマンティクスは、更新された値がすぐに利用できないようなものです。したがって、ここでの唯一のオプションは、基本的に、作業を複製し、Behaviorの更新された値を再計算して、すぐに使用できるようにすることです。別のイベントでは、つまり?????? のようなもので
これで、ビヘイビアの代わりにディスクリートを使用することで、ビヘイビアの更新された情報をすぐに利用できるようになるという感覚がありますが、これは実際には、元のイベントと同時に発生するイベントを提供することと同じです。更新された値を使用し、リアクティブなものを見逃していない限り、バナナは、他の2つのイベントが同時に発生した場合にのみイベントを発生させる方法を提供しません。つまり、イベントの結合を提供しますが、交差点は提供しません。
だから私は2つの質問があります。まず、この状況についての私の理解は正しいですか、特に上記の私の解決策がそれを回避する唯一の方法であるという結論で正しいですか?第二に、純粋に好奇心から、イベントの交差点に対処する方法について開発者による考えや計画はありましたか?