問題タブ [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 - 卓球ゲーム、ボールがアウト オブ バウンズかどうかを検出
私は卓球ゲームを書いています。ゲームのロジックについて助けが必要です。私の問題は、ボールがマップの外にあるかどうかを検出するときに問題が発生したことです。これにより、ボールが範囲外になり、スコアがカウントされません。現在、次のように機能します。
定数の理由は、ゲームのサイズが 600x400 で、ボールの幅が 15 ピクセルで、位置が中心にあるためです。resetGame は次のように機能します。
しかし、どういうわけか、これは何らかの理由で機能しません。ボールはまだマップから外れており、ゲームは基本的に壊れています。
だから、私の質問は次のとおりです。基本的に、ボールがアウトオブバウンズになったときにゲームがリセットされ、各プレーヤーに意図したとおりにスコアが与えられるように、これをどのように記述すればよいでしょうか? 完全なソース コードはhttp://lpaste.net/91745にあります。上記のコードは 107 ~ 114 行で定義され、118 行で使用されています。
助けていただければ幸いです、ありがとう。
編集: stepScore でさまざまな定数を試しましたが、stepScore が問題で、何らかの理由で機能しません。:(
javascript - FRPで状態管理
FRP は、状態を明示的に管理せずにイベント ストリームを処理するものであると言う人もいます。たとえばこんな人。
http://www.slideshare.net/borgesleonardo/functional-reactive-programming-in-clojurescript
他の人は、非同期コールバックで行う必要があるように、副作用によって完全にプログラミングすることの難しさを指摘することによって、FRP を動機付けます。
http://cs.brown.edu/~sk/Publications/Papers/Published/mgbcgbk-flapjax/
しかし、FRP (flapjax) を使った実験では、同じ問題に直面し続けています: 副作用による明示的な場合を除き、状態を処理できないということです。
たとえば、アニメーション キューです。変更はイベント ストリームに到着します。最初の変更が到着したら、将来のある時点で (たとえば、window.requestAnimationFrame を使用して) 描画をキューに入れ、現在と将来の描画イベントの間の変更を蓄積するように手配する必要があります。描画イベントが発生したら、蓄積された変更を描画する必要があります。
これは約 6 行の命令型スタイルとオブザーバー パターンを使用したコードですが、これを FRP で表現する適切な方法が見つかりません。近づきそうな唯一の方法は、共有状態で関連するイベント ストリームを閉じ、状態を明示的に管理し、副作用を介してイベントをレンダリングすることです。命令型コールバックの改善にはほとんどなりません。
これをFRPでどう扱うか。
状態を閉じるためのflapjaxユーティリティは次のとおりです。
ここでは、アニメーション ループで使用されます。
注意点: 同等のコールバック コードよりもサイズが大きく、読みにくく、保守性も劣ります。状態を明示的に管理する必要があります。そして、それは副作用を介して動作します。
FRPでこれを行うより良い方法はありますか? 別のパターンですか、それとも別のライブラリですか?
signalr - Signalr - コールバックを関数呼び出しではなくイベントとしてシリアル化しますか?
Signalr では、コールバックの代わりにイベントを使用するためのサポートはありますか?
熊手をつかむ前に説明させてください。
ここの最初の例に従ってください
ハブ プロキシの addContosoChatMessageToPage(name, message) は呼び出されませんが、いくつかの追加情報を含む addContosoChatMessageToPage イベントがディスパッチされます。(正確に同じ API 呼び出しであることを求めているわけではありません)
私がこのすべてを尋ねている理由は、
- これは、 ELMやbacon.jsなどの関数型リアクティブ プログラミング フレームワークと一緒に使用すると、はるかにうまく機能します。
- 私はこれを自分でやりたくないので、本質的に自分のサブフレームワークを作成します。もちろん、いつでも Clients.All.CreateEvent(name,params...) を実行できます。ここで、このイベント作成を行うためにメソッドを継続的にコールバックしています
- 私は実際、懸念の分離のためのいくつかのシナリオでは、イベントの方がうまく機能すると思います。
私はクレイジーですか?このようなものは存在しますか?
haskell - Netwire 相互依存ワイヤ
Netwire を試すために、ライブラリを使用して Pong を実装しています。コードには、ボール ワイヤとコンピュータ パドル ワイヤがあります。それらはいくつかの値で相互に依存しているため、無限ループの問題が発生しています。説明する擬似コード:
注目すべきことは、それらがお互いを入力として取っていることです。私は次のことを行うことでこれを軽減しようとしました:
これらの2つのワイヤで関数を使用する他のバリエーションdelay
ですが、<<loop>>
実行時エラーが発生します。
このシステムが機能するように、ワイヤの 1 つを初期化するにはどうすればよいですか?
javascript - どうにかしてベーコンのアクションを「繰り返し」抑えることはできますか?
私は bacon.js を使用しており、信号が 2 つのソースから放出される状況があります。
が起動されると、 からシグナルが起動された場合を除き、永続的にsourceA
実行される何らかのアクションをトリガーする必要があります。したがって、構文的には次のようになります。repeatedly
sourceB
だから私は基本的にアナログtakeWhile
やtakeUntil
コンビネータを求めていますが、ソースやドキュメントでそのような関数を見つけることができません. 何かご意見は?
ジェネリックコンビネータがあればさらに良い
また
何らかの条件でベーコン イベント ストリームを終了させる場合、どのように実装すればよいでしょうか?
以下のこのソリューションに注意してください。
派生ストリームaAction
を抑制しますが、元のストリームは抑制しません。
javascript - Bacon.js には、同時に発行された 2 つのイベントを収集できるコンビネータがありますか?
タイトルが示すcollect
ように、Reactive-Banana に見られるものと同様に、同時に発行されたイベントをリストに収集するコンビネーターを探しています。言い換えれば:
まだ存在しない場合、どのように実装しますか? ソースを熟読すると、イベントの発生の「時間」を読み取る方法がわかりません。たとえば、Bacon.Event
クラスはそれ自体の発生時間を記録していないようですか? Javascript のネイティブ関数を使用して事後new Date().getTime()
イベントをマークし、任意の時間枠内で発生するイベントが実際には「同時」であると主張する必要があります。
haskell - 関数型リアクティブ プログラミングでは、アプリケーションの 2 つの部分の間で状態をどのように共有しますか?
ユーザー入力がオートマトンに流れ、イベント ストリームのコンテキストで実行され、ユーザーをアプリケーションの別の部分に誘導するアプリケーション アーキテクチャがあります。アプリケーションの各部分は、ユーザー入力に基づいて何らかのアクションを実行できます。ただし、アプリケーションの 2 つの部分は何らかの状態を共有しており、概念的には同じ状態の読み取りと書き込みを行っています。注意点は、2 つの「スレッド」が同時に実行されていないことです。そのうちの 1 つは「一時停止」され、もう 1 つは出力を「生成」します。グローバル変数に頼らずに、この状態共有計算を記述する標準的な方法は何ですか? 2 つの「スレッド」が、何らかの形式のメッセージ パッシングによって同期するローカル状態を維持することは理にかなっていますか?
質問はより概念的なものであるため、コード サンプルはありませんが、Haskell (任意の FRP フレームワークを使用) または他の言語のサンプルによる回答を歓迎します。
frp - 文字のパターンマッチ
私は Elm (elm-server 0.9.2) にかなり慣れていませんが、私にとってかなりの障害となっている問題に遭遇しました。
これが私の問題です:
バージョン 0.9 のドキュメントによると、次のように記述できるはずです。
これをテストするために、私は基本的に自分の機能を実行しました(非常に似ています:)):
しかし、それらのブースは失敗します。いくつかのデバッグの後、javascript でこれに気付きました:
JavaScript についてはよくわかりませんが、Chr '\n' は Chr('\n') である必要があるようです。間違っている可能性があります...誰かが私を正しい方向に向けることができますか?
haskell - リアクティブバナナで重複イベントをフィルタリングする
私が持っているとしましょう
最初のコンポーネントを取得できます。
ただし、このイベントは、最初のコンポーネントが変更されていない場合でも発生します。コストのかかる再計算がトリガーされるため、これは避けたいと思います。
A
のインスタンスでEq
あるため、最初のコンポーネントが最後の値と比較して変更されていない連続したイベントを削除できるようにしたいと考えています。
理想的には、関数が欲しい
Moment
モナドに頼らずにそれを行うでしょう。出来ますか?または、これを行うための最良の方法は何ですか?
scala - Scala React の簡単な例
ペーパーDeprecating the Observer Pattern with Scala.Reactに基づいて、ペーパーから簡単な例を設定しようとしましたが、例外がスローされましたException in thread "main" java.lang.AssertionError: assertion failed: This method must be run on its domain scala.react.NilDebug@1502c065
関連する質問はRunning a simple Scala.React expressionです。
scala react ライブラリの優れた機能を使用するには、どのようにすべてを設定すればよいですか?
ライブラリscala-reactに加えて、次の例を使用しました。