問題タブ [alternative-functor]

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 投票する
1 に答える
107 参照

haskell - mzero はガード タイプのシグネチャとどのように一致しますか?

仕組みが理解できませんguard。なぜ型チェックをするのですか?どこかmzeroを返すことはできませんか?m aa /= ()

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

haskell - インスタンス代替 ((->) r) はありますか?

a <> bwhereabtake 引数の使用に慣れました。

なぜないのa <|> bですか?

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

haskell - Haskell 型クラスの積と合計型の並列

ApplicativeMonadArrowなどの型クラスには、それぞれAlternativeMonadPlusArrowPlusなどの型クラスと同等の和型があるようです。たとえば、Applicative と Alternative を使用して、次を定義できます。

ただし、これらのすべての場合 (およびArrowChoiceの場合) では、製品タイプ クラスは合計タイプ クラスの前提条件です。前提条件クラスに依存する型クラス規則または共通関数はありますか? Typeclassopediaはこれらの関係に触れていますが、残念ながら、依存関係の明確な理由を見つけることができませんでした。

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

haskell - Alternative 型クラスが Control.Applicative のサブクラスである必要があるのはなぜですか

<|>Haskell は、Applicative でもある任意の型の演算子を効果的に提供する標準型クラス 'Alternative' を提供します。

私が理解しているように、Alternative は Applicative のモノイドと見なされますが、<|>演算子は Applicative Functor ではない多くの型でも完全に意味があるようであり、Applicative 型クラスに特定の依存関係がある必要はありません。正しく動作するようにします。

Alternative が Applicative のサブクラスである必要がある理由はありますか?もしそうなら、非適用型で同様の機能を定義する標準型クラスはありますか?

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

haskell - オルタナティブではできるが、モノイドではできないことは何ですか?

Monad + Monoid ではなく、なぜ MonadPlus なのかを読みました。理論的な違いは理解できますが、リストの場合は同じに見えるため、実際の違いを理解することはできません。

はい。実装が異なる可能性があります

しかし、Alternative と同じ方法で Maybe Monoid を実装できます。

では、オルタナティブとモノイドの実際的な違いを説明するコード例を誰かが示すことができますか?

質問は、なぜ MonadPlus ではなく Monad + Monoidの複製ではありませんか?

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

haskell - `if px then x else empty` コンストラクトの一般化を探す

同じことをしているように見えるスニペットがいくつかありますが、両方を処理するための一般化された構造があるとは完全には確信していません。ある場所で、私は

これは使用中のように見えるかもしれません

別の例では、私は非常によく似たものを持っています

これは代わりに次のようになります

どちらも、述語に従って値が正しいかどうかをチェックしており、そうでない場合は、デフォルトの「空」に見える値を返しています。ただし、わずかな違いがあります。つまり、2 番目の関数は次のように書き直すことができます。

それらをより似たものにするために、「アンラップ」の責任をMaybe述語に置きます。この新しい定義では、両方の機能が該当します

だから、私の質問は、

これbool x empty (p x)は何らかの形で存在するので、この関数を自分で実装する必要はありませんか? インライン化の問題bool x empty (p x)は、私の場合、 と の両方pxかなり長いことです。