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

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

haskell - モノイドと環の違いの意味は何ですか?

これは Haskell のモノイドの例です:

これは、Clojure のモノイドの例です。

これは Haskell のリングの例です:

これは、これに基づくClojure のリングの例です。

リングとモノイドの違いは、リングには「実装するインターフェースに追加のメソッド」があることです。(おそらく私は間違っています)。私にとって、これは結合性に影響を与えるでしょう-しかし、私はこれの完全な意味について頭を悩ませていません.

私の質問は次のとおりです。モノイドとリングの違いの意味は何ですか?

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

mongodb - パラメータ化されたモノイドの一般的なゼロを作成しようとしているときに Nothing ボトム タイプを使用する際の問題

これが私のコードです。Casbah を使用してタイプセーフな MongoDB クエリを作成できます。

これらの行に満足していないことを除いて、正常に動作します。

フォールディング操作ごとにこれら2つのオブジェクトの新しいインスタンスを作成するのではなく、TypesafeMongoQuery[Nothing]構築される基礎となるDBObjectが常に同じであるため、タイプのval /シングルトンを使用することは可能だと思います。

署名を至る所で置き換えるなど、いくつかのことを試しました[ObjectType,T <% ObjectType]が、大きな成功はありませんでした。

私の問題を解決する方法について何か考えはありますか?

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

haskell - なぜ折り方がないのですか?

Foldable クラスには、fold、foldl、foldr、foldl'、foldr' が含まれていますが、fold はありません (厳密なモノイド フォールドの場合)。

フォールドの動作を IntMap でエミュレートするにはどうすればよいですか (ツリーとして実装されていますが、内部ノードに直接アクセスすることはできません)。


動機:

特に、サイズ K (合計サイズ N = M*K) の M 個の IntMap を含む IntMap がある場合、それらを O(N * log(M)) big-O 実行時間で結合したいと考えています。何かのようなもの:

IntMap は、mappend が共用体として定義された Monoid のインスタンスであるため、これは機能します。一般に、foldl' または foldr' を使用すると、最悪の場合の実行時間が Omega(N * log N) になるため、理論的には遅くなります。確かに、これはおそらく実際には取るに足らない違いですが、私は理論的に最適な境界を気にするのに十分な知識を持っています.


おっと、上記は間違っています。もっと注意深く調べてみたところ、fold を使用するか、foldl を使用するか、foldr を使用するかは問題ではないことがわかりました。実行時間は O(N * log(M)) になります。したがって、この質問に対する動機はもうありません。

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

coq - Coqのモノイドインスタンスとしての紙、はさみ、岩の証明

そこで、Coq を学習しながら、ゲームの紙、はさみ、ロックを使った簡単な例を作成しました。データ型を定義しました。

そして3つの機能:

コンポジションも定義します (ただし、これは標準ライブラリのどこかにあるはずです)。

ここで説明されているように、クラスのモノイドを実装します

asとasPSRの下でモノイドを形成できることをついに証明することができましたcompose+me1

質問

Instance MSPR : Monoid compose me.申請するだけで仕事introsの証明ができるのはなぜreflexivityですか?正直なところ、私は自分が何をしていたかを知っていましたが、split次のようなものを得た後introsintros

試しapply compose.ましたが、うまくいきませんでした。魔法reflexivity.のように解決しましたが、理由はわかりません。

サイドノート

このように力を定義すると、これは素晴らしく機能しました

その後、Compute (power beats 2) paper.利回り

これをしたのはbeats (beats paper) = beats scissor = rock!!!

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

haskell - 結果を複製しない HXT の論理 OR

HXTに少し問題があります: いくつかの基準に一致するドキュメント内のすべてのノードを見つけようとしています。レンズ/XPath を OR のような方法で述語として結合しようとしてControl.Arrow.<+>ます。ガイドが提案します。ただし、ドキュメントで矢印を「実行」しようとすると、結果が重複します。重複を削除したり、より意味のある方法でテストを組み合わせたりする簡単な方法はありますか? これが私のコードです:

しかし、これを (任意の Web ページで) 実行するたびに、結果/ノードが重複します。これはモノイドを模倣するArrowPlus typeclass<+>の一部であり、ArrowXMLはArrowListArrowTreeの両方のインスタンスであるため、多くの作業が必要です。ArrowIf述語を作成する必要がありますか? これに関するどんな助けも素晴らしいでしょう:)

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

haskell - モノイド インスタンス フォーム HList レコードが機能しない

Monoidのインスタンスを定義しようとしていますが、インスタンスHList Recordが重複しているというエラー メッセージが表示されます。私の試み(コードは複雑に見えますが、基本的にタプルインスタンスになるものです)

エラーメッセージ:

どういう意味ですか ?この問題を解決するにはどうすればよいですか? (私は GHC 7.6.3 を使用しています)

0 投票する
7 に答える
1355 参照

haskell - 「and []」が True で「or []」が False である理由

空のリストの「and」がtrueを返すのはなぜですか?空のリストがTrueを保持していることを意味しますか? 申し訳ありませんが、これを正しく読んで理解できないので、修正してください。ありがとう。