問題タブ [category-theory]
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 - zygo/meta/histo/para/futu/dyna/whatever-morphisms とは何ですか?
広範な圏論の知識がなくてもアクセスできる例を含むそれらのリストはありますか?
math - 圏論を学ぶためのリソース
近々圏論の授業を受ける予定です。
それについて学ぶために、どのリソースをお勧めしますか?
どの部分を学ぶのが適切で、自分の知識を応用するにはどうすればよいですか?
haskell - liftMはliftAと異なることができますか?
Typeclassopedia(他のソースの中でも)によると、Applicative
論理的には型クラス階層のMonad
とPointed
(したがってFunctor
)に属しているので、Haskellの前奏曲が今日書かれた場合、理想的には次のようなものになります。
(これらのデフォルトの定義がウィキペディアの説明から私によって再入力された場合、エラーは私自身のものですが、エラーがある場合は少なくとも原則として可能です。)
ライブラリは現在定義されているため、次のようになります。
と:
各ペア内のこれらのタイプ間の類似性に注意してください。
私の質問は次のとおりです。liftM
(とは異なるliftA
)とap
(とは異なる)は、単に、念頭に置いて設計されていない<*>
歴史的現実の結果ですか?それとも、コンテキストのみを必要とするバージョンとは異なる、他の動作方法(場合によっては、いくつかの法的な定義)ですか?Monad
Pointed
Applicative
Monad
Applicative
それらが異なる場合、(Typeclassopediaや他の場所で説明されているが、型システムによって強制されていない、、、、および定義に必要なMonad
法則に従う)定義の単純なセットを提供できますか?Applicative
Pointed
Functor
liftA
liftM
あるいは、それらが明確でない場合、前提と同じ法則を使用してそれらの同等性を証明できますか?
c# - 有用または重要なデュアルインターフェイスの例
最近、Erik MeijerらIObservable/IObserver
は、のデュアルがどのようになっているのかを示していますIEnumerable/IEnumerator
。それらがデュアルであるという事実は、一方のインターフェイスでのすべての操作がもう一方のインターフェイスでも有効であることを意味します。したがって、.Netのリアクティブエクステンションの理論的基盤を提供します。
他のデュアルインターフェイスは存在しますか?.Netベースだけでなく、あらゆる例に興味があります。
covariance - 誰かがタイプ共変性/反変性と圏論の関係を説明できますか?
圏論について読み始めたばかりですが、CSの反変性/共分散と圏論の関係を誰かが説明していただければ幸いです。いくつかの例のカテゴリーは何でしょうか(つまり、それらのオブジェクト/射は何ですか?)?前もって感謝します?
haskell - すべての Haskell ファンクターはエンドファンクターですか?
私は少し混乱しており、誰かが私を正す必要があります. 私の現在の理解を概説しましょう:
E
エンドファンクタはどこにあり、A
いくつかのカテゴリは次のとおりです。
Haskell のすべてのタイプとモーフィズムがHask
カテゴリに含まれているため、Haskell のファンクタはエンドファンクタでもありませんか? .F : Hask -> Hask
私は自分が間違っていると感じていて、これをどうにかして単純化しすぎているので、誰かに私がなんてバカなのか教えてもらいたいのです。ありがとう。
oop - オブジェクト指向プログラミングにはどのような数学的双対がありますか?
最近Channel9のGoingDeep番組を見た場合、非常に頻繁に言及されるトピックの1つは、プログラミングにおける数学的双対性です。TomasPには、オブジェクト指向プログラミングの二重性に関する優れたブログ投稿があります。
これは、Microsoft Researchが、オブザーバーデザインパターンが実際にはイテレーターパターンの数学的デュアルであることを発見してからです。それ以来、彼らはさまざまな方法で二重性の概念を使用してきました。
私の質問は:
プログラミングにはどのような数学的二重性がありますか?
オブジェクト指向プログラミングは良いスタートです。主なGoFデザインパターンは、デコレータ、ステート、イテレータ、ファサード、ストラテジー、プロキシ、ファクトリメソッド、アダプタ、オブザーバ、テンプレートメソッド、コンポジット、シングルトン、アブストラクトファクトリおよびコマンドです。これが良いオブジェクトグラフポスターです。
haskell - モナドはエンドファンクターの範疇にあるモノイドにすぎませんが、何が問題なのですか?
次の言葉を最初に言ったのは誰?
モナドはエンドファンクターの範疇にあるモノイドにすぎませんが、何が問題なのですか?
それほど重要ではありませんが、これは本当ですか? もしそうなら、説明をしてもらえますか?
haskell - 付属物としてのモナド
圏論のモナドについて読んでいます。モナドの定義の 1 つは、随伴関手 (adjoint functor) のペアを使用します。モナドは、それらのファンクターを使用したラウンドトリップによって定義されます。どうやら随伴は圏論では非常に重要ですが、随伴関手の観点から Haskell モナドの説明を見たことがありません。誰かがそれを考えましたか?
haskell - 接合組織型前プロモーフィズムの実世界への応用
はい、これらのもの:
はい、私はそれらが ( HHOS ) 冗談であることを知っています。単純なハック値の実際の例を探していますが、最後に、「これは XYZ を表現する慣用的な方法です」と言って wiki に追加します。解決策が見つからない場合は、報奨金を出します。彼らが何について話しているのか完全にわからない場合は、Edwardが redditに短い説明を投稿しました。
適格な回答は次の条件を満たす必要があります。
少なくともリモートで理論的に計算上有用なことを行います。つまり、 に還元される答え
id
はアウトです。スキームのすべての機能を使用し、id、const、または同等のものを渡さないでください。
単純なバニラ フォールドなどで同じように表現できるわけではないため、単純に
product
蛇行した方法で実装しないでください。
ボーナス ポイントは次の場合に付与されます。
よく知られた問題またはアルゴリズム
それぞれ得られる異常な方法で解決され、表現された
明快さおよび/またはパフォーマンス
および/またはハック値
および/またはlulz、おおよそその順序で、
上位の回答 (yay 民主主義)
以下のエドワードの回答にも注意してください。どの ZHPM 実装を使用するかは、あなたの選択です。