問題タブ [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.

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

haskell - Traversable が Foldable に加えて持っている「明確な方法」は何でしょうか?

Foldableは のスーパークラスであり、 がおよびのスーパークラスであるのTraversableと同様です。FunctorApplicativeMonad

の場合と同様に、Monad基本的に次のように実装できますfmap

foldMap次のようにエミュレートすることもできます

Monoid m => (,) mモナドを使う。したがって、スーパークラスとメソッドの組み合わせは、どちらの場合も一定の冗長性を持ちます。

モナドの場合、型クラスの「より良い」定義は次のようになると主張できます (Applicative / monoidal はスキップします)。

少なくともそれが圏論で使われているものです。この定義は、Functorスーパークラスを使用しないと許可liftMしないため、この冗長性はありません。

Traversableクラスで同様の変換が可能ですか?


明確にするために、私が求めているのは再定義です。

Traverse実際のメソッドをトップレベル関数にすることができるように

しかし、一般的に作ることはできません

特定の何かのためにこれが必要なので、私は尋ねていません。と の違いをよりよく理解するための概念的な質問FoldableですTraversable。繰り返しますが、Monadvs Functor:とよく似ていますが、毎日の Haskell プログラミング>>=よりもはるかに便利です (通常、このとの組み合わせjoin正確に必要になるため)。fmapjoin

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

haskell - 簡単な例で Haskell tr​​aversable をテストする

次の 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 を使用して印刷しようとしています。私は正しい軌道に乗っていますか?また、トラバース可能なインスタンス化をどのように実装する必要がありますか?

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

haskell - Haskell の Foldable と Traversable に相当するのは、単に Clojure のシーケンスですか?

Haskell では、Foldable と Traversable が Haskell prelude に登場します。

これらは両方とも、シーケンスに対して操作を行います。

私の質問は、Haskell の Foldable と Traversable に相当するものは、単純に Clojure のシーケンスですか?

仮定:

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

haskell - Haskellレンズ:ビューをトラバースでうまく再生するには?

Haskellで実装することで、レンズについて学ぼうとしています。view次のようにコンビネータを実装しました。

ただし、 と組み合わせて使用​​しようとするとtraverse、次のエラー メッセージが表示されます。

残念ながら、このエラー メッセージがわかりません。それが何を意味し、どのように修正できるかを説明してください。

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

haskell - ダミーなしで Applicative Traversable のインデックスを取得する

私がいくつか持っているとしましょう。vこれは両方Applicativeであり、またTraversableです。vのインデックスでを取得するにはどうすればよいvですか? 具体的な例として、V3fromを考えてみましょうLinear。欲しいV3 0 1 2

1 つの方法はmapAccumL、ダミーを使用することです。たとえば、次のようになります。

しかし、(pure "")ダミーはエレガントではありません。よりエレガントな方法でこれを行うにはどうすればよいでしょうか?

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

haskell - Haskell Traversable を Vector に変換するには?

Traversableのインスタンスがある場合xs、どうすれば に変換できVectorますか?

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

scala - 検証のリストでシーケンスが機能しないのはなぜですか

シーケンスとは何かを理解していると思います。なぜそれが動作しないのか疑問に思っていList[ValidationNel]ます。例えば:

sequenceうまく動作しますList[Option]]

...しかし、動作しませんList[ValidationNel]

...しかし、動作しsequenceU ますList[ValidationNel]

私の質問は次のとおりsequenceですList[ValidationNel]。なぜsequenceUそれで動作しますか?

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

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か?