自函子的Day Convolution和自函子的Composition有啥区别

啊,那……
这个意思大概是说,monad 是支持 return 和:
join :: forall a. F (F a) -\u0026gt; F a的函子。而我们有
newtype Compose f g a = Compose (f (g a))所以我们可以等效地说,要有
join :: Compose F F a -\u0026gt; F a那么 Day 的话……是……
data Day f g a where Day :: forall u v. f u -\u0026gt; g v -\u0026gt; (u -\u0026gt; v -\u0026gt; a) -\u0026gt; Day f g a这个东西它……其实……uh……你想,我们有
liftA2 :: (u -\u0026gt; v -\u0026gt; a) -\u0026gt; F u -\u0026gt; F v -\u0026gt; F a 【自函子的Day Convolution和自函子的Composition有啥区别】 而有它等效于
liftA2 :: Day F F a -\u0026gt; F a所以 Applicative 是支持 pure 和 liftA2 的函子。
好像还差个自函子范畴。函子之间有自然变换
newtype Nat f g = Nat (forall a. f a -\u0026gt; g a)显然这个有 id,可以复合,那就是范畴了。
于是上面 join 和 liftA2 又等效于
join :: Nat (Compose F F) FliftA2 :: Nat (Day F F) F而这两个类型看起来有点像是 自函子的Day Convolution和自函子的Composition有啥区别
的形式。
我们还有 return 和 pure。等效于:
pure :: Nat Identity F其中,
newtype Identity a = Identity a好。现在看一下 Monoid (category theory) 的开头(Examples 以前)


    推荐阅读