Pet*_*lák 7 haskell composition functor category-theory applicative
我们可以有两种类型f, g :: * -> *,它们不是monad,但它们的组成是.例如对于任意固定s:
f a := s -> a
g a := (s, a)
Run Code Online (Sandbox Code Playgroud)
g a不是monad(除非我们限制s为monoid),但是f (g a)是monad状态s -> (s, a).(不同于仿函数和应用性函子,即使这两个f和g是单子,它们的成分可能不是.)
仿函数或应用仿函数是否有类似的例子?即是,所述组合物f和g是AA函子(或适用函子),即使
f并且g不是(应用性)函子,另一个是,或这不是(协变)仿函数
f x = x -> r
Run Code Online (Sandbox Code Playgroud)
但是f . f"延续"仿函数(也是一个monad):
f (f x) = (x -> r) -> r
Run Code Online (Sandbox Code Playgroud)
这可能不是最好的例子,因为它f是一个逆变函子.