問題タブ [foldable]

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

haskell - Haskell で null (Just 5) ができないのはなぜですか?

Maybe の Hackage ドキュメントには、Foldable が Maybe の型クラスの 1 つとして挙げられています。また、次の関数もリストされています。

この関数の実装にもリンクしています (からFoldable):

...これはかなり合理的なようです。それも機能します: I can, if I import qualified Data.Foldable, foldron Maybe values.

ただし、Maybe を呼び出そうとするとnull、Haskell は、リスト用に設計された null を使用したいと考えています。

があることは知っていますがisJust、Foldable のような関数を呼び出す方法を知りたいだけですnull

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

haskell - 自分の型の MonoFoldable がコンパイルされない理由、またはエラー メッセージが理解できない

次のコードがあります。

ただし、コンパイラから次のエラーが表示されます。その意味を理解するのに苦労しています。

私が言うことができる限りでは、私の考えは理にかなっているようです.結局のところ、 aRuleSetは s の単なるコンテナでRuleあり、折りたたみ可能であるべきですが、問題のエラーメッセージは私には意味がありません. 誰かが私がここで把握できなかったものを明確にしてもらえますか?

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

haskell - 折り畳み式 vs トラバーサブル

Applicativeより深く勉強するうちに、私は にたどり着きましたTraversableLYHGGFoldableからは知っていましたが、前者はまだ見ていないので、Traversable に関する Haskell wikiを読み始めました。

それを読んでいるうちに、 が に平行で、 が に平行である理由Foldable.foldがわかりました。Traversable.sequenceAFoldable.foldMapTraversable.traverse

また、 everyTraversableも aFoldableおよび aFunctorでありsequenceAtraversal相互にデフォルトの実装があることも確認しました。

foldMapしたがって、の最小完全定義であるLYHGG で見たようにFoldable、それは と平行であると考えたtraverseので、fold(これは と平行ですsequenceA) も最小完全定義になります (そうではありません)...Foldableはではないので、これを適用することはできませんFunctorTraversable

なぜすべてFoldableが aではないのでしょうか?実際には ではないFunctorインスタンスは何でしょうか?FoldableFunctor

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

haskell - 定数 ab = 定数 a の折りたたみ可能なインスタンスを実装するにはどうすればよいですか?

折りたたみ式を実装したい

これは私の簡単な試みです:

私が理解したいコンパイルエラーの部分は次のとおりです。

ご覧のとおり、折りたたみ関数は、a1アクセスできない定数から「ファントム型」(?) を取得します。にしかアクセスできませんa

これを解決するにはどうすればよいですか?私はかなり混乱しているので、あなたの解決策を説明してください。

コンパイルエラー全体は次のとおりです。

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

haskell - モノイドがfoldr/foldlの要件ではないのはなぜですか?

私はFoldableHaskellのクラスを見ています。メソッドのうちの 2 つは、Monoid インスタンスを必要としますfoldfoldMapしかし、foldrまたはfoldlそのような制約はありません。

foldr/の結果foldlが同等であるためには、指定された折り畳み関数を連想的に制限するべきではありませんか? 同じリストで、foldr/foldl の結果が異なる例はありますか?

Foldable インスタンスは Monoidal 値をラップすべきではありませんか? それともFoldableの方が一般的ですか?

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

haskell - MonoFoldable で失うものはありますか?

mono-traversableパッケージのMonoFoldableは、通常のすべての Foldable コンテナーなどを実装BytestringできるようMonoFoldableですFoldable。私の質問は、いくつかの高度な GHC 機能を必要とすることを除けMonoFoldableば、 にないもので失われるものはFoldableありますか? これにより、インスタンスの作成者にとって少しトリッキーになり、おそらく見苦しいエラー メッセージが表示されますか?

たとえば、Foldableコンパイルを使用するときにMonoFoldable型が推論されないコードはありますか? または、クライアント (インスタンス ライター コードではない) を大幅に単純化するその他の方法FoldableMonoFoldable?