問題タブ [monoids]
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.
scala - サブタイプへのモノイド アプリケーションは、追加演算子でコンパイルされませんが、明示的に呼び出されたときに機能します
Retry Execution の戦略を組み合わせるために Monoid を作成しており、RetryExecutor[T] がベースの型です。次の基本型とモノイドを定義しました。
および次のようないくつかの基本型:
そして、それらを手動で組み合わせることができます:
しかし、追加演算子を使用しようとすると:
コンパイル エラーが発生します。
haskell - モノイドの実用化とは?
Learn You a Haskellを読んでいて、すでに applicative について説明しましたが、今はモノイドに取り組んでいます。両方を理解するのに問題はありませんが、実際には applicative が有用であることがわかりましたが、monoid はそうではありません。だから、Haskell について何かを理解していないと思います。
まず、 について言えば、Applicative
「コンテナ」に対してさまざまなアクションを実行するための統一された構文のようなものを作成します。したがって、通常の関数を使用してMaybe
、 、リスト、IO
(モナドと言った方がいいでしょうか? モナドはまだわかりません)、関数に対してアクションを実行できます。
したがって、適用可能は抽象化です。私たちはそれがなくても生きていけると思いますが、いくつかのアイデアモードを明確に表現するのに役立ちます.
では、 を見てみましょうMonoid
。それは抽象化でもあり、かなり単純なものでもあります。しかし、それは私たちを助けますか?本のすべての例について、物事を行うためのより明確な方法があることは明らかです。
そこで、いくつかのパターンに気付き、新しい型クラスを作成しました...いいですね、私は数学が好きです。しかし、実用的な観点からは、何のポイントMonoid
ですか? アイデアをよりよく表現するのにどのように役立ちますか?
haskell - HSpec と QuickCheck を使用して Data.Monoid プロパティを確認する
HSpec と QuickCheck を使用して、モノイド (結合性と同一性要素) のプロパティを検証しようとしています。特定のインスタンスを検証するつもりですが、ほとんどのコードはポリモーフィックに保ちたいと考えています。これは私が数時間後に思いついたものです:
私が持ちたいのはポリモーフィックです
実際の Monoid インスタンス (Sum、Product) とタイプ (Int、Double) を後で指定します。問題は、型チェックを行わないことです。私は得続けます
ポリモーフィック バージョンのモノイドを Arbitrary、Eq、および Show に制約する必要があることはわかっていますが、その方法がわかりません。
問題は、モノイドの仕様をポリモーフィックな方法で表現し、コードの重複を回避する方法です。
haskell - Haskell: より良い書き方 遠藤かな?
network-api-supportパッケージのおかげで Endo タイプを発見したばかりで、Maybe 値を Endo タイプにスローできるようにする必要があることがわかりました。その結果、maybeEndo という関数を作成しました。使用例を次に示します。
私を驚かせたのは、これはすでにある種のパターンにカプセル化されるべきもののように思えるということです。
haskell - Haskellのモノイドブール
もちろん、データ型は正確ではありませんが、これは(多かれ少なかれ)どのようにMonoid Bool
実装されていますか?
そう/そうでない場合、 を対にBool
する理由は何ですか?mappend
OR
AND
haskell - Haskell - 演算子が結合的でない場合に起こるモノイドの実装
定義またはモノイドによれば、二項演算子は結合的でなければなりませんA op (B op C) == (A op B) op C
。
haskellの基本mconcat
定義は次のとおりです。
関数の実装の詳細を知っているのでmconcat
、関数が結合されていない偽のモノイドを定義して使用すると、何か悪いことが起こりますか? たとえば、減算または除算のインスタンスを定義するように。
これは役に立ちますか、それとも要点を逃していますか?