Control.Category有什么用?

ale*_*tor 14 math haskell category-abstractions

如果我发现某些东西是Monoid或者Monad,我会全部使用各种有趣的功能,比如foldMap,sequence甚至mapM.他们让我开心.

如果我发现某些东西是什么,我会得到什么Category?难道我得到什么乐趣,除了超载id(.)

bzn*_*bzn 11

除了重载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)
Run Code Online (Sandbox Code Playgroud)

作为旁注:你没有得到那么多有趣的功能的原因是,mapM或者foldMap说,某些东西是一个类别,实际上对它的说法很少.我认为最有用的函数是定义的函数Control.Category,有时使代码更容易阅读:>>><<<

  • 附录:"维基百科说"类别理论被认为是"一般的抽象无意义"(以一种好的方式),因为它非常抽象. (2认同)

Lan*_*dei 7

Control.Category只是基础工作Control.Arrow,而这就是你从中获得有趣功能的地方.