タグ付けされた質問 「category-theory」

6
モナドはエンドファンクターのカテゴリーの単なるモノイドですが、何が問題なのですか?
誰が最初に次のことを言ったのですか? モナドはエンドファンクターのカテゴリーの単なるモノイドですが、何が問題なのですか? そして、それほど重要ではないメモで、これは本当ですか?もしそうなら、説明を提供できますか(願わくば、Haskellの経験があまりない人でも理解できると思います)。

4
プログラミングの文脈で「代数」とはどういう意味ですか?
関数型プログラミングとPLTサークルで「代数」という用語を何度も聞いたことがあります。特に、オブジェクト、コモナード、レンズなどについて議論する場合はそうです。この用語をグーグルで検索すると、これらの構造の数学的説明が記載されたページが表示されますが、これは私にはほとんど理解できません。誰もがプログラミングの文脈で合同代数が何を意味するか、それらの重要性は何であるか、そしてそれらがオブジェクトとコモナードとどのように関連するか説明できますか?

2
zygohistomorphic prepromorphismsの実際のアプリケーション
はい、これらは: {-#LANGUAGE TypeOperators, RankNTypes #-} import Control.Morphism.Zygo import Control.Morphism.Prepro import Control.Morphism.Histo import Control.Functor.Algebra import Control.Functor.Extras import Control.Functor.Fix import Control.Comonad.Cofree zygohistomorphic_prepromorphism :: Functor f => Algebra f b -> GAlgebra f (ZygoT (Cofree f) b) a -> (f :~> f) -> FixF f -> a zygohistomorphic_prepromorphism f = g_prepro (distZygoT (liftAlgebra …

1
継続モナドを左と右の随伴に因数分解する方法は?
状態モナドは積(左-ファンクター)とリーダー(右-表現可能)に因数分解できます。 継続モナドを因数分解する方法はありますか?以下のコードは、チェックを入力しない私の試みです -- To form a -> (a -> k) -> k {-# LANGUAGE MultiParamTypeClasses, TypeOperators, InstanceSigs, TypeSynonymInstances #-} type (<-:) o i = i -> o -- I Dont think we can have Functor & Representable for this type synonym class Isomorphism a b where from :: a -> …

3
すべての固定サイズのコンテナーは強力なモノイドのファンクターですか、その逆ですか?
Applicative型クラスは、型指定された機能のカテゴリにデカルトmonoidal構造を保持ずさんmonoidalファンクタを表します。 言い換えると(,)、モノイド構造を形成する正準同型が見られる場合: -- Implementations left to the motivated reader assoc_fwd :: ((a, b), c) -> (a, (b, c)) assoc_bwd :: (a, (b, c)) -> ((a, b), c) lunit_fwd :: ((), a) -> a lunit_bwd :: a -> ((), a) runit_fwd :: (a, ()) -> a runit_bwd :: a -> (a, …

1
Mにモナド的に自然な非同一モナドモーフィズムM〜> Mはありますか?
型シグネチャによる自然変換はa -> a恒等関数でなければならないことが知られています。これは米田補題に続くが、直接導出することもできる。この質問は同じ性質を求めますが、自然な変換ではなくモナド射を求めます。 モナドM ~> N間のモナド射を考えます。(これらはM a -> N a、両側でモナド演算を保持する自然な変換です。これらの変換は、モナドのカテゴリーの射です。)e :: (Monad m) => m a -> m aすべてのモナドで同じように機能するモナド射が存在するかどうかを確認できますm。言い換えると、モナドモーフィズムeは、モナドタイプパラメータでモナド的に自然でなければなりませんm。 モナド自然法則によれば、任意の2つのモナドMとNの間のモナドモーフィズムf:M a-> N aについてはf . e = e . f、適切な型パラメーターが必要 です。 問題は、そのようなeものは恒等関数でなければならないことを証明できるか、またはe次のように定義された非恒等モナド射の反例があるかどうかです。 e :: (Monad m) => m a -> m a e ma = ... そのような定義に失敗した試みの1つeは次のとおりです。 e ma = do …


1
ArrowとApplicativeとは異なり、相互イールドによってArrowApplyとMonadsが同等になるのはなぜですか?
これが私が参照するSOの投稿です。また、資料を分離しないために、その質問ではOPと同じスニペットを使用します。 インスタンスがモナドを生成すること、およびその逆が広く知られていArrowApplyます。 newtype ArrowMonad a b = ArrowMonad (a () b) instance Arrow a => Functor (ArrowMonad a) where fmap f (ArrowMonad m) = ArrowMonad $ m >>> arr f instance Arrow a => Applicative (ArrowMonad a) where pure x = ArrowMonad (arr (const x)) ArrowMonad f <*> ArrowMonad x …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.