問題タブ [comonad]

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

haskell - HaskellのComonad型クラスとは何ですか?

HaskellのComonad型クラスとは何ですか?comonadパッケージのControl.ComonadのComonadと同様です(Comonad型クラスを提供する他のパッケージの説明も歓迎します)。私は漠然とコモナドについて聞いたことがありますがextract :: w a -> a、それについて私が本当に知っているのは、モナドと似たようなものを提供することだけですreturn :: a -> m a

「実際の」コードでのComonadの「実際の」使用に注目するためのボーナスポイント。

0 投票する
8 に答える
16792 参照

haskell - モナディックアクションから価値を引き出す方法

署名付きの組み込み関数はあります:: (Monad m) => m a -> aか?

Hoogleは、そのような機能はないと言っています。

理由を説明できますか?

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

haskell - ストア コモナドとは何ですか?

Haskell の Comonad 型クラスが何であるかについてある程度の考えを持っているので、 Store comonad について聞いたことがあります。しかし、Control.Comonad.Store.Lazyを見ると、よくわかりません。どういう意味ですか?それはなんのためですか?State Monad の双対である Store = CoState と聞いたことがあります。どういう意味ですか?

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

math - Haskell で Cayley テーブルを実装するにはどうすればよいですか?

Cayley Tableを使用するためにいくつかの計算ツールを一般化することに興味があります。つまり、ルックアップ テーブル ベースの乗算演算です。

次のように最小限の実装を作成できます。

ただし、このアプローチには、ByteString比較による実行時の型チェックから始めて、read正しく動作させることができないという事実を含め、多くの問題があります。これを正しく行う方法はありますか?

IO を実行する場合を除いて、乗算を提供し、それらの型の一貫性を検証する型クラスを使用して、 newtypes CTElement1CTElement2などのファミリを作成することを想像できます。IntCTElement

ct_cayleytable理想的には、おそらく のような暗黙のパラメーターを使用して、このポインターのコピーを 1 つだけ渡すためのトリックがあるかもしれません?cayleytableが、これは互換性のない複数の Cayley テーブルではうまく機能せず、一般的に不快になります。

また、ベクトルへのインデックスはコモナドと見なすことができることもわかりました。最終的に実行時に行う場合でも、この種の型チェックをスムーズにするのに役立つベクトルまたは何かの素敵な comonad インスタンスはありますか?

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

haskell - underscore.jsのチェーン関数はモナドを作成しますか?

あなたがchain見つけるドキュメントで:

ラップされたオブジェクトを呼び出すchainと、今後のすべてのメソッド呼び出しでラップされたオブジェクトも返されます。計算が終了したら、を使用valueして最終値を取得します。

では、chain関数はモナドを作成しますか?

0 投票する
3 に答える
2747 参照

scala - Scala での Comonad の例

Comonad とは何か、Scala 構文で記述できれば教えてください。scalazライブラリの実装を見つけましたが、それがどこで役立つかは明確ではありません。

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

haskell - Haskell cabal Reactive パッケージ エラー

Cabal で Reactive をインストールしようとすると、次のようになります。

thisによると、実際には comonad 依存関係はありません。ただし、PrimReactive.hsで Control.Comonad を使用します。

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

list - 理論的には、これはリストの有効な comonad インスタンスですか?

私はコモナドの概念を理解しようとしています。このブログ投稿を読んだ後、コモナドが何をするのか、モナドとどのように関係しているのかをしっかりと理解できたと思います。しかし、私はこの主題を少し掘り下げて、一般的なリスト型 (ご存知のように[a]) の comonad インスタンスがどのように見えるかを考えてみようと思いました。正しい。

したがって、ブログ投稿で使用されたインスタンスを考えると、次のようになります。

のインスタンス宣言は次の[a]ようになると思いました ( の構文[a]はおそらく不可能か間違っていますが、ここでアイデアを得ることができます):

ここではsubsequences、リストのすべてを見つけるだけですが、それを使用することは完全に実行可能powersetです。の形式のリストにはいくつかの関数があり、(a -> [a])どれが正しいかはあいまいです。

[a]これは、comonad として適切にインスタンス化できないことを意味するのでしょうか、それとも、cojoin実際に何を行うかを決定するのは単にユーザー次第なのでしょうか?

0 投票する
3 に答える
4352 参照

haskell - n次元グリッドタイプのcojoinまたはcobindの記述

タイプレベルのナチュラルの典型的な定義を使用して、n次元グリッドを定義しました。

今度はそれをコモナドのインスタンスにしたいのですが、脳を完全に包み込むことはできません。

n次元グリッドで使用cojoinすると、n次元グリッドのn次元グリッドが生成されます。これと同じアイデアをインスタンスに提供したいと思います。つまり、(x、y、z)で結合されたグリッドのは、(x、y、z)にフォーカスされたグリッドある必要があります。そのコードを適応させるには、 「fmaps」と「rolls」を実行するために具象化する必要があるようです。あなたはそのようにそれをする必要はありませんが、それが助けになるなら、あなたはそこに行きます。nnn

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

scala - Scala コマンド; コモンド法?

では、このコモナドのエンコーディング (以下を参照) を考えると、それより上のコモナドの法則は正しいのでしょうか? なんらかの理由で、彼らはそれらを見ているとは思いません。そこから間違って進むと悪い道しか生まれないことを知っているので、ナッジ、ヒント、ヘルプ、答えをいただければ幸いです。