問題タブ [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.
haskell - mzero はガード タイプのシグネチャとどのように一致しますか?
仕組みが理解できませんguard。なぜ型チェックをするのですか?どこかmzeroを返すことはできませんか?m aa /= ()
haskell - インスタンス代替 ((->) r) はありますか?
a <> bwhereaとbtake 引数の使用に慣れました。
なぜないのa <|> bですか?
haskell - Haskell 型クラスの積と合計型の並列
Applicative、Monad、Arrowなどの型クラスには、それぞれAlternative、MonadPlus、ArrowPlusなどの型クラスと同等の和型があるようです。たとえば、Applicative と Alternative を使用して、次を定義できます。
ただし、これらのすべての場合 (およびArrowChoiceの場合) では、製品タイプ クラスは合計タイプ クラスの前提条件です。前提条件クラスに依存する型クラス規則または共通関数はありますか? Typeclassopediaはこれらの関係に触れていますが、残念ながら、依存関係の明確な理由を見つけることができませんでした。
haskell - Alternative 型クラスが Control.Applicative のサブクラスである必要があるのはなぜですか
<|>Haskell は、Applicative でもある任意の型の演算子を効果的に提供する標準型クラス 'Alternative' を提供します。
私が理解しているように、Alternative は Applicative のモノイドと見なされますが、<|>演算子は Applicative Functor ではない多くの型でも完全に意味があるようであり、Applicative 型クラスに特定の依存関係がある必要はありません。正しく動作するようにします。
Alternative が Applicative のサブクラスである必要がある理由はありますか?もしそうなら、非適用型で同様の機能を定義する標準型クラスはありますか?
haskell - オルタナティブではできるが、モノイドではできないことは何ですか?
Monad + Monoid ではなく、なぜ MonadPlus なのかを読みました。理論的な違いは理解できますが、リストの場合は同じに見えるため、実際の違いを理解することはできません。
はい。実装が異なる可能性があります
しかし、Alternative と同じ方法で Maybe Monoid を実装できます。
では、オルタナティブとモノイドの実際的な違いを説明するコード例を誰かが示すことができますか?
質問は、なぜ MonadPlus ではなく Monad + Monoidの複製ではありませんか?
haskell - `if px then x else empty` コンストラクトの一般化を探す
同じことをしているように見えるスニペットがいくつかありますが、両方を処理するための一般化された構造があるとは完全には確信していません。ある場所で、私は
これは使用中のように見えるかもしれません
別の例では、私は非常によく似たものを持っています
これは代わりに次のようになります
どちらも、述語に従って値が正しいかどうかをチェックしており、そうでない場合は、デフォルトの「空」に見える値を返しています。ただし、わずかな違いがあります。つまり、2 番目の関数は次のように書き直すことができます。
それらをより似たものにするために、「アンラップ」の責任をMaybe述語に置きます。この新しい定義では、両方の機能が該当します
だから、私の質問は、
これbool x empty (p x)は何らかの形で存在するので、この関数を自分で実装する必要はありませんか? インライン化の問題bool x empty (p x)は、私の場合、 と の両方pがxかなり長いことです。