Answers:
实际上,“力量”一词在这里有两种用法。
甲强endofunctor 在monoidal范畴(Ç ,⊗ ,我)是一个其中带有一个天然转化σ :甲⊗ ˚F (乙)→ ˚F (甲⊗ 乙),满足相对于一些相干性条件我会掩饰的伙伴。有时也称这种情况为“ F有力量”。
甲涣散monoidal算符 是2个Monoidal范畴之间的算符(ç ,⊗ ,我)和(d ,⊕ ,Ĵ )与自然变换φ :˚F (甲)⊕ ˚F (乙)→ ˚F (甲⊗ B )和i :J → F (I ),再次满足关联者的一致性条件。
甲强monoidal算符 是其中φ和我是天然同构。即,˚F (甲⊗ 乙)≃ ˚F (甲)⊕ ˚F (乙),用φ和它的逆描述同构。
在Haskell程序的意义上,一个应用函子是具有强度的松散单调函数,其单调结构是笛卡尔积。因此,这就是为什么您会听到听起来有些矛盾的术语“强松散单极子函子”的原因。
顺便说一句,在笛卡尔封闭类别,具有强度相当于一个天然转化存在米一个p:(甲⇒ 乙)→ (˚F (甲)⇒ ˚F (乙))。即,具有强度意味着可以将函数作用定义为编程语言中的高阶函数。
最后,如果您对Haskell样式的应用函子的类型理论感兴趣,那么我就写了一篇博客。
Functor
都是很强的(wrt产品)。
为了理解由单子驱动的Applicative,我想指出以下结构:
Yoneda引理暗示与n a t(H o m(A ,B ),F B )之间存在同构。在Haskell类型类别,这是映射 一个↦ (克↦ ˚F (克)(一)) 型的 ˚F 甲→ 乙甲 → ˚F 乙。 以F A评估
Functor
都具有强度(WRT产品),仅仅是因为它们是使用fmap
语言内部定义的?另外,令您感到困惑的是,您对和i的定义与您的博客文章和Wikipedia文章相比都被颠倒了 -是错字吗?我试图定义使用as ,这显然需要。pure
i
pure' = \v -> fmap (\() -> v) (i ())
i :: (Applicative f) => () -> f ()