問題タブ [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 - ペアの最初の要素を矢印なしでマッピングできますか?
私はファンクター、アプリケーションファンクターに注目しています…行きたい場所にたどり着く方法はわかりませんが、タイプに従うことで私はもっと近づくはずだと感じています。
map
2タプルの最初の要素にのみ適用される-alikeを作成する簡単な方法はありますか?first
から取っControl.Arrow
て使用するとArrow (->)
、これでうまくいきます。
私の唯一の懸念は、矢についての本当の直感をまだ得ていないということです。ですから、これを続ければ、遅かれ早かれ深海にいることに気付くでしょう。さらに、これは一般化できないかなり便利なケースのようです。
ファンクターやモナドなどから何かを使って同じ機能を手に入れながら、欲しいものの核心をつかむことはできますか?私はいじっていました
-アイデアのようですが、そこに到達することはできませんでした。
haskell - mapM に相当する矢印?
Arrows を理解して作業しようとしていますが、問題が発生しています。が必要なコンテキストがあり、Arrow [a] [b]
を書き、Arrow a b
それを矢印内にマップ/シーケンス化したい a la mapM
。具体的には、矢印は Hakyll ですCompiler
が、答えにはあまり関係ないと思います。
与えられた矢印
これを矢印に持ち上げるにはどうすればよいですか
?
私は基本ライブラリ、特に と を精査しましたData.List
がControl.Arrow
、それが機能するように見えるものは何も見つかりません。予想外の名前で存在していませんか? 他のライブラリから提供されていますか?なんらかの理由で書き込めないのでしょうか?
generics - 自由矢印の便利な操作
無料のモナドが便利であることはわかっています。Operationalのようなパッケージを使用すると、モナド構造自体ではなく、アプリケーション固有の効果だけを気にすることで、新しいモナドを簡単に定義できます。
フリーモナドの定義方法に類似した「フリーアロー」を簡単に定義できます。
私の質問は、フリーアローで最も有用な一般的な操作は何でしょうか?私の特定のアプリケーションでは、次の2つの特別なケースが必要でした。
しかし、なぜこれら(そして他のものではない)が有用なものになるのかについての理論的な議論はありません。
haskell - 複数のタプルに矢印を使用するにはどうすればよいですか?
さまざまな数の引数タプルを持つこれらの構造がたくさんあります。の場合
「あ、矢だ!」と思いました。
しかし、(最初のコード行のように) 複数の入力タプルを持つ関数が矢印スタイルにマップされるかどうか、またどのようにマップされるかはまだわかりませんでした。そのような関数を処理する一般的な方法は何ですか? 理想的には、私は常に のようなものが欲しいですfoo = bar ... bar2
。
haskell - Arrows での観測可能な再帰 (またはバインディング)
|fib| などの通常の再帰表記を翻訳する方法を見つけようとしています。再帰表記の構造を可能な限り保持しながら、下の関数を矢印に置き換えます。さらに、矢印を調べたいと思います。このために、各 Arrow{..} クラスのコンストラクターを含むデータ型を作成しました。
フィブ:
私のRデータ型、このデータ型のインスタンスは、適切なコンストラクターへのマッピングで構成されています:
|fib|の翻訳 上記の関数は、最初に次の定義をもたらしました。ただし、|fibz| の宣言の右側にある proc n のために許可されていません。Arrow Notation の文法がこれを妨げていることは知っていますが、その根本的な理由は何ですか?
上記の関数を let ステートメントを使用するように書き換えると、コンパイルが実行されます。ただし、ここで 2 つ目の問題が発生します。再帰が発生する場所を検査できるようにしたい。ただし、この場合 |fibz| 無限木です。再帰を fibz にキャプチャしたいと思います。rec が |loop| と組み合わせてそれを支援してくれることを願っています。しかし、多分私は間違っていますか?
基本的に、この種の再帰を観察することは可能ですか? (おそらく Arrow Notation の境界内でも) fix のような別のコンストラクターを追加することもできます。たぶん、変数の参照が可能になるように、変数のバインディングを観察できるはずです。ただし、これは Arrows の範囲外になります。
これについて何か考えはありますか?
更新 1:
矢印表記以外で、このフォームを思いつきました。これにより、内に再帰が隠されるapp
ため、矢印の有限表現になります。fib
ただし、内部への呼び出しをapp
最適化されたバージョンのfib
.
このコードは、以下の矢印表記に対応しています。
haskell - Haskell'sArrow-Agdaのクラスと->Agdaのクラス
密接に関連する2つの質問があります。
まず、HaskellのArrowクラスをAgdaでモデル化/表現するにはどうすればよいですか?
(次のブログ投稿では、それが可能であるはずだと述べています...)
第二に、Haskellでは、(->)
は一級市民であり、もう1つの高階型であり、クラス(->)
の1つのインスタンスとして定義するのは簡単です。Arrow
しかし、それはAgdaではどうですか?私は間違っているかもしれませんが、Agdas->
はHaskellのものよりもAgdaのより不可欠な部分であると感じてい->
ます。したがって、Agdas->
は高次の型、つまり、 ?Set
のインスタンスにすることができる型関数を生成するものと見なすことができますArrow
か?
haskell - クライスリの矢印をIOに持ち上げますか?
次の2つのクライスリ矢印がある場合:
私は次のような何かを書くことができるようにしたいと思います:
String
と一致しないため、もちろん機能しませんIO String
。一方、両方を定義してタイプにすることは可能ですstdoutProcessA
がwriteToFileA
、その場合、他のものに必要なKleisli IO ...
タイプの矢印でそれらを構成することはできません。Kleisli Maybe ...
私はまだ矢印の経験があまりないので、おそらく明らかな何かが欠けています。上記をどのように行うのでしょうか?
xml - Haskell のアロー関数にパラメータを与える
いくつかのデータを含む XML ファイルがあります。このファイルには、列とデータ自体の説明が含まれています。列名は読み取れますが、データを返す関数にこの行名を与える方法がわからないため、データを読み取ることができません。
XML ファイル:
サンプルコード:
私にとっての問題はgetRowsData
. サンプル コードでは列名を暗黙的に指定しましたが、リストから読み取り、アロー関数で適用して行を返すようにしたいと考えています。
haskell - タイプ `ab [c]` と `acd` の連鎖矢印
値のリストを出力する矢印 ( a b [c]
) と、そのタイプの単一の値を受け入れる別の矢印( ) がありa c d
ます。基本的に必要なのは、それらをチェーンする方法、または 2 番目の矢印を に持ち上げる方法a [c] [d]
です。
haskell - XmlArrowを使用してページからn番目の要素を取得しますか?
このページスクレイピングチュートリアルに続いて、作成者は次のようにページ上のすべての画像のコレクションを取得します。
たとえば、ページの2番目の画像のみを取得するにはどうすればよいですか?XmlArrowのドキュメントgetElementAt :: Int -> blah
のような関数は見つかりませんでし た。
ありがとう!