問題タブ [arrows]
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 の矢印の説明
矢印を理解するにはどこに行くのが良いでしょうか? 理想的には、モナドに関するワドラーの説明に似た、いくつかの良い例から動機付けられた簡潔な定義のある場所を探しているだけです。
haskell - Haskell/Yampa で矢印構文を使用した単純な putStrLn
矢印言語拡張を使用する Yampa FRP ライブラリで Haskell を使用しています。
SF で単純な putStrLn を実行するにはどうすればよいですか?
矢印の構文は、式が矢印ではないことに文句を言いますが(もちろん)、矢印を使用しても出力が得られません
haskell - Haskell の矢印を理解する
矢印はほとんどのFRP実装の基礎であるため、矢印を把握しようとしています。私は基本的な考え方を理解していると思います-それらはモナドに関連していますが、各バインド演算子に静的情報を保存するため、矢印のチェーンをたどって、矢印全体を評価することなく静的情報を見ることができます。
しかし、1 番目、2 番目、およびスワップについて話し始めた時点で、私は迷子になります。2-タプルは矢印と何の関係がありますか? チュートリアルでは、タプルをあたかも明らかな次のステップであるかのように提示していますが、実際には関連性がわかりません。
さらに言えば、矢印構文は直感的に何を意味するのでしょうか?
haskell - Haskell:Arrowsの使い方を誤解していますか?
Arrowsのコンセプトで遊ぶためのおもちゃのコードをいくつか書きました。ステートフル関数の概念をエンコードするArrowを記述できるかどうかを確認したかったのですが、呼び出しごとに異なる値を与えます。
そのため、さまざまな型クラスの定義を確認した後(ArrowZeroがこれで機能するかどうか、またはどのように機能するかわからないため、スキップしました)、いくつかのヘルパー関数を定義しました。
そして、使用例を考え出しました
ただし、コンパイルしようとするとcountExample
、との「範囲外」エラーが発生します。これは、チュートリアルに戻って、いつ使用できるかを確認する必要があることを意味していると思います。とにかく本当に欲しいのはもっとcount'
count''
しかし、それはちょっと厄介で、もう少し自然なことを望んでいました。
Arrowsがどのように機能するのか、そしてそれらがどのように使用されるのか、私がどのように誤解しているのか誰かが説明できますか?私が見逃しているArrowsの基本的な哲学はありますか?
f# - F# で演算子 (***) を定義できますか?
私は F# で Arrows に取り組んでおり、***
オペレーターを作成したいと考えていました。ただし、(***)
関数定義で演算子を表現するために必要な方法は、F# のブロック コメント構文と重複することに注意してください。では、これを実際にどのように表現できますか?
たぶん考え.***.
ましたが、実際にはドットを演算子の一部として扱うので、避けたいと思います。
xml - 矢印を折りたたんで一覧表示
HXTに問題がありますが、矢印については何かが足りないのではないかと思います。
私は次のようなXML構造を持っています
そして内部構造のような
矢印のステップで要素を収集する方法はありますか?
getXmlDataの再帰呼び出しでは、回答を収集してXmlListコンストラクターでラップする必要がありますが、用語を収集する方法がわかりません。現在、私は出力のいくつかの後処理(同じ名前で収集)でこれを達成していますが、より良い解決策が欲しいです。
haskell - 矢印とは何ですか?どのように使用できますか?
矢の意味を学ぼうとしたのですが、わかりませんでした。
ウィキブックスのチュートリアルを使用しました。ウィキブックスの問題は、主にそのトピックをすでに理解している人のために書かれているように見えることだと思います。
誰かが矢印とは何か、そして私がそれらをどのように使うことができるかを説明できますか?
haskell - HXT: 左因数分解の非決定論的矢印?
私は Haskell の XML ツールボックス ( HXT ) を理解しようとしていますが、計算ツールとしての矢印を完全に把握していないように見えるため、どこかで壁にぶつかっています。
GHCiセッションを使用してもう少しよく説明したいと思っていた私の問題は次のとおりです。
したがって、Parse は、単純な XML ドキュメントに与えた矢印を適用する小さなヘルパー関数です。
別のヘルパー関数を定義します。今回は、指定された名前のノードの下にあるテキストを抽出します。
この関数の助けを借りて、&&&
コンビネータを使用して 2 つの異なるノードのテキストをペアにし、それを次のようにコンストラクタに渡すのは簡単です。
ここで、私が理解できない部分が来ます: 私は左因数分解したい! ルートノードを 2 回extract
呼び出します。getChildren
代わりに、一度だけ呼び出したいです! だから私は最初にルートノードの子を取得します
それが問題かどうかを調べるために、たとえば isElem などの呼び出しの順序を変更しようとしたことに注意してください。しかし、現状では、これが機能しない理由がわかりません。Haskell wiki には「チュートリアル」という矢印があり、私がそれを理解した方法では、その方法でやりたいことを実行できるはず&&&
です。つまり、2 つの計算の結果をペアにするために使用します。
それも機能しますが、「共有」したい結果がすでにある場合は、途中の谷ではなく、矢の連鎖の開始時にのみ. 通常の関数合成とアロー表記の考え方の違いに頭を悩ませているだけな気がします。私はどんな指針にも非常に感謝しています!(Haskell-wiki よりももう少し詳細な一般的な矢印のチュートリアルであっても。)
ありがとうございました!
haskell - ペアはどのようにアロー関数の型と統一されますか
矢印を操作するための関数のいくつかは、ペアで使用すると非常に便利です。しかし、これらの関数の型がどのようにペアで統一されるのか理解できません。一般に、Arrow 関連の関数の型は非常にわかりにくいと思います。
たとえば、私にfirst :: a b c -> a (b, d) (c, d)
はほとんど意味がありません。しかし、たとえば、ペアの最初の数値をインクリメントするために使用できます。
と
誰かがこれがどのように機能するか説明してもらえますか?