問題タブ [traversable]
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 - Traversable が Foldable に加えて持っている「明確な方法」は何でしょうか?
Foldable
は のスーパークラスであり、 がおよびのスーパークラスであるのTraversable
と同様です。Functor
Applicative
Monad
の場合と同様に、Monad
基本的に次のように実装できますfmap
。
foldMap
次のようにエミュレートすることもできます
Monoid m => (,) m
モナドを使う。したがって、スーパークラスとメソッドの組み合わせは、どちらの場合も一定の冗長性を持ちます。
モナドの場合、型クラスの「より良い」定義は次のようになると主張できます (Applicative / monoidal はスキップします)。
少なくともそれが圏論で使われているものです。この定義は、Functor
スーパークラスを使用しないと許可liftM
しないため、この冗長性はありません。
Traversable
クラスで同様の変換が可能ですか?
明確にするために、私が求めているのは再定義です。
Traverse
実際のメソッドをトップレベル関数にすることができるように
しかし、一般的に作ることはできません
特定の何かのためにこれが必要なので、私は尋ねていません。と の違いをよりよく理解するための概念的な質問Foldable
ですTraversable
。繰り返しますが、Monad
vs Functor
:とよく似ていますが、毎日の Haskell プログラミング>>=
よりもはるかに便利です (通常、このとの組み合わせがjoin
正確に必要になるため)。fmap
join
haskell - 簡単な例で Haskell traversable をテストする
次の URL に記載されている Data.Traversable を使用して、haskell のデータ構造のすべてのメンバーをトラバースしようとしています。
http://hackage.haskell.org/package/base-4.6.0.1/docs/Data-Traversable.html http://www.haskell.org/haskellwiki/Foldable_and_Traversable
これまでのところ、Tr.Traversable インスタンス化の適切な実装が欠落していることがわかっている限り、次のコードを思いつきました。
exampleData のすべての項目をメンバーごとに、show を使用して印刷しようとしています。私は正しい軌道に乗っていますか?また、トラバース可能なインスタンス化をどのように実装する必要がありますか?
haskell - Haskell の Foldable と Traversable に相当するのは、単に Clojure のシーケンスですか?
Haskell では、Foldable と Traversable が Haskell prelude に登場します。
これらは両方とも、シーケンスに対して操作を行います。
私の質問は、Haskell の Foldable と Traversable に相当するものは、単純に Clojure のシーケンスですか?
仮定:
- Haskellの fmap に相当するものは、Clojureの m-fmapです。
haskell - Haskellレンズ:ビューをトラバースでうまく再生するには?
Haskellで実装することで、レンズについて学ぼうとしています。view
次のようにコンビネータを実装しました。
ただし、 と組み合わせて使用しようとするとtraverse
、次のエラー メッセージが表示されます。
残念ながら、このエラー メッセージがわかりません。それが何を意味し、どのように修正できるかを説明してください。
haskell - ダミーなしで Applicative Traversable のインデックスを取得する
私がいくつか持っているとしましょう。v
これは両方Applicative
であり、またTraversable
です。v
のインデックスでを取得するにはどうすればよいv
ですか? 具体的な例として、V3
fromを考えてみましょうLinear
。欲しいV3 0 1 2
。
1 つの方法はmapAccumL
、ダミーを使用することです。たとえば、次のようになります。
しかし、(pure "")
ダミーはエレガントではありません。よりエレガントな方法でこれを行うにはどうすればよいでしょうか?
haskell - Haskell Traversable を Vector に変換するには?
Traversable
のインスタンスがある場合xs
、どうすれば に変換できVector
ますか?
scala - 検証のリストでシーケンスが機能しないのはなぜですか
シーケンスとは何かを理解していると思います。なぜそれが動作しないのか疑問に思っていList[ValidationNel]
ます。例えば:
sequence
うまく動作しますList[Option]]
...しかし、動作しませんList[ValidationNel]
...しかし、動作しsequenceU
ますList[ValidationNel]
私の質問は次のとおりsequence
ですList[ValidationNel]
。なぜsequenceU
それで動作しますか?
haskell - 「Data.Traversable」の「fmapDefault」のポイントは何ですか?
私はドキュメントを見ていてData.Traversable
、出会いましたfmapDefault
- https://downloads.haskell.org/~ghc/latest/docs/html/libraries/base/Data-Traversable.html#g:3
ドキュメントには、次のように記載されています-
traverse が定義されている場合、この関数は Functor インスタンスの fmap の値として使用できます。
したがって、おそらくインスタンスの派生fmap
に使用できます。Traversable
ただし、スーパークラスとしてTraversable
持っFunctor
ています。
Traversable
したがって、最初にインスタンスを定義せずにインスタンスを定義することはできませんFunctor
! そして、どこにいても、Traversable
にアクセスできますfmap
。これは、 と同等 (そしておそらくより効率的)fmapDefault
です。
fmapDefault
では、より使い慣れた の代わりに、どこで を使用するのでしょうfmap
か?