問題タブ [netwire]

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 に答える
282 参照

haskell - Bumpless transfer in FRP

I can build a PID controller in the Haskell FRP library netwire using loop from the ArrowLoop instance provided for Wires.

I can also implement switching between controllers or between a controller and a manual input using switch.

How can I implement bumpless transfer, for example using the "tracking" strategy explained here (or in any number of control engineering articles/books)? Another strategy might be acceptable if it has good performance, but the tracking approach is appealing for my application because it also address anti-windup.

I'm having trouble squinting at the block diagram hard enough to make it look like the type of two (or one?) loop applications.

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

haskell - Netwire で使用する場合の ArrowLoop の誤解

この投稿の優れた回答のリードに従って、ArrowLoop矢印表記を使用しない実際の例を取得しようとしています。ボンネットの下で矢印がどのように機能するかを完全に理解するまで、矢印表記を使用するのは不快です。そうは言っても、Arrows の (限られた) 理解に基づいて動作する小さなプログラムを作成しました。<<loop>>ただし、恐ろしい例外で終了します。

私の直感では、<<loop>>通常、ループに初期値を指定しないと例外が発生します。を含む行でそれを行っていませんfn i 0.0か? 出力は一致しません:

私が間違っていることを誰かが知っていますか?

0 投票する
2 に答える
352 参照

haskell - アロー表記から変換

私はまだ、アロー表記と Haskell で定義されたアロー型クラスのセマンティクスとの類似点を理解しようとしています。特に、この質問には、矢印表記で書かれた小さなカウンターの非常に標準的な例があるようです。

これを矢印表記なしで Haskell2010 に変換する方法を教えてもらえますか?

0 投票する
2 に答える
1169 参照

haskell - Netwire 5 の基本構造は何ですか?

私はNetwireに入ろうとしています.ドキュメンテーション、紹介、チュートリアルなどを探しましたが、ほぼすべてのチュートリアルと既存のコードはNetwire 5に関しては時代遅れであり、もはや使用されていないNetwire 4の機能を使用しています.我ら。READMEはある程度役に立ちますが、すべてがコンパイルされるわけではなく、開始するのに十分な情報がほとんど提供されません。

ゲームループを実行してイベントに応答できるようにするためだけに説明または例を求めているので、最終的に知ることができるように情報を求めています。

  1. 基本構造 (reactive-banana で、ハンドラーを消費し、動作を定義し、イベントに反応するネットワーク記述を作動させる方法など)。
  2. それが最終的にどうなるかmain
  3. IO イベント (マウスクリック、キーダウン、ゲームループ コールバックなど) の処理方法、セッションでのイベントの発生方法など。

そして、その他の関連するもの。

そこから何かを実行できると考えているので、実験によって残りを学ぶことができます (第 5 バージョンのドキュメントとチュートリアルの状態は恐ろしく存在しないため、すぐにいくつかが表示されることを願っています)。

ありがとうございました!

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

haskell - netwire: 相互に依存するワイヤでの遅延 (?) の処理

相互に依存するワイヤvelocityを使用して、オブジェクトを壁から跳ね返らせようとしています。location単純な 1 次元の例は次のようになります。

これを実行すると、最初のバウンス速度がステップごとに負の値と正の値の間で反転し始めます

跳ね返った境界に応じて速度を負または正にするように速度ワイヤーに信号を送ることで、それを「修正」できることを私は知っています。できます。しかし、なぜこの動作が見られるのかを理解したいと思います。境界の反対側にオブジェクトを明示的にプッシュするため、反転は一度だけ行う必要があることを知っています。ここでは怠惰が役割を果たしているのではないかと思います。戦略的に配置されseqていると、「意図したとおりに」機能する可能性があります。

「ブルートフォース」ソリューションに頼らずに修正する方法の説明と提案が必要です。

0 投票する
3 に答える
76 参照

haskell - (a -> b -> c) と (Wire semab) から a (Wire semac) を構築します。

簡単な例として、私はこれを持っています。

そして、Int から String へのワイヤを作成できるようにしたいと考えています。

簡単だと思いますが、運がありません。

0 投票する
0 に答える
84 参照

haskell - Cloud Haskell と Netwire。それらは重複していますか?両方を効果的に使用できますか?

基本的には、FRP と分散型 Haskell で実験したいと思っています。

FRP 用の Netwire と Cloud Haskell を使用して、「ワイヤ」を異なる「ノード」に分散できるようにすることはできないのでしょうか。

しかし、Cloud Haskell はすでに FRP を提供しているかもしれません。あるいは、Netwire はすでに分散型ワイヤを提供しているかもしれません。

分散型 FRP をどのように実現できますか?

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

haskell - ネットワイヤーの正しい使い方 (5)

しばらくの間、FRP に挑戦したいと思っていましたが、昨日ついに弾丸をかじり、Netwire 5 を使用して始めました (それ自体はかなり恣意的な選択ですが、どこかから始めなければなりません!)。「機能するコード」のポイントに到達することができましたが、ライブラリがどのように使用されると予想されるか、またはそれらが私の症状であるかどうか確信が持てないパターンがいくつかあることに気付きました。私はどこかで何か間違ったことをしています。

私はこのチュートリアルから始めました。これは、非常に簡単に起動して実行するのに十分でした-単純な「増分番号」ワイヤで制御される回転する立方体ができました。

「Esc」が押されるとアプリケーションは終了し、netwire-input-glfwで提供されたワイヤを使用します:

これらの重要な違いは、spin常に抑制している間、常に何らかの値を返す必要があるということshouldQuitです。キーが実際に押されるまで、その場合はアプリケーションを終了します。

私を不安にさせるのは、これらのワイヤーを使用しなければならない方法です. 現在、次のようになっています。

このパターンについて私が不快に感じる点が 2 つあります。Right undefinedまず、への両方の呼び出しに渡すという事実stepWire。(私の理解が正しければ)このパラメータはイベントをワイヤに送信するためのものであり、ワイヤはイベントをまったく使用しないため、これは「安全」ですが、気分が悪いと思います(EDIT多分「イベント」はここで間違った言葉 - チュートリアルはそれを「値をブロックする」と説明していますが、要点はまだ立っています - 私は決してブロックするつもりはなくe、ワイヤーのどこでもパラメーターを使用しません)。stepWireイベントがないことがわかっていて、イベントがあったとしてもそれに応答しないことがわかっているが、イベントが表示されないという状況のバージョンがあるかどうかを確認しました.e()Right ()これは よりわずかに汚れていないように感じますがundefined、それでも私の意図を完全には表していないようです。

同様に、戻り値もEither. これはワイヤに最適ですが、ワイヤの出力でshouldQuitパターン マッチを行う必要があることに注意してください。それが阻害することが何を意味するのか本当にわからないので、ただ、ワイヤの数が増えるにつれてこれが扱いにくくなることは想像できます。決して抑制されず、次の値を保持するために常に信頼できるワイヤーを持っています。wt'spinreturn ()

したがって、動作するコードはあるのですが、どういうわけか「やり方が間違っている」という不安な気持ちが残ります。また、Netwire 5 はかなり新しいため、チェックできる「慣用的な」コードの例を見つけるのは困難です。私がマークの近くにいるかどうか見てください。これはライブラリの使用方法ですか、それとも何か不足していますか?

EDIT :私が言及した 2 番目の問題 ( のEither結果に対するパターン マッチング) は、とを 1 つにspin結合することで解決できました。spinshouldQuitWire

このワイヤをステップ実行すると、はるかに賢明な戻り値が得られますLeft。終了できる場合は終了できますが、そうでない場合は、処理するデータの一部があります。また、私の元の方法よりも構成可能性が高いことも示唆しています。

Right undefinedただし、この新しいワイヤへの入力として渡す必要があります。確かに、現在は 1 つしかありませんが、これが正しいアプローチであるかどうかはまだわかりません。