如果我发现某个东西是Monoidor Monad,我就会使用各种有趣的功能,比如foldMap,sequence甚至mapM。他们让我开心。
如果我发现某物是 a ,我会得到什么Category?id除了超载和之外,我还有什么好玩的(.)吗?
如果我发现某个东西是Monoidor Monad,我就会使用各种有趣的功能,比如foldMap,sequence甚至mapM。他们让我开心。
如果我发现某物是 a ,我会得到什么Category?id除了超载和之外,我还有什么好玩的(.)吗?
除了重载 id 和 (.) 之外,我还有什么好玩的吗?
好吧,您还(应该)获得与它们相关的法律:
"identity/left" forall p .
id . p = p
"identity/right" forall p .
p . id = p
"association" forall p q r .
(p . q) . r = p . (q . r)
作为旁注:你没有得到那么多有趣的功能的原因mapM是foldMap,说某事是一个类别实际上是对它说的很少。我猜最有用的函数是 中定义的函数Control.Category,它们有时使代码更易于阅读:>>>和<<<
Control.Category只是 的基础工作Control.Arrow,这就是您从中获得有趣功能的地方。