【发布时间】:2015-04-15 14:41:02
【问题描述】:
我承认这个问题有点不具体,但我想知道为什么我从来没有在 Haskell 的仿函数上偶然发现一个类型类。我是否只是错过了它,这种缺席是否有充分的理由,或者完全是由于历史原因?恕我直言,没有右上角的继承图看起来有点奇怪:
Functor
|
V
Applicative ––> Alternative
| |
V V
Monad ––> MonadPlus
【问题讨论】:
-
您可以随时添加它(如果可以合理定义,可能有一些 CT 库可以这样做) - 我最好的猜测:那里没有/不够用例
-
我不同意你总是可以添加它,因为你不能让它成为 Alternative 的超类。我还认为(几乎)Alternative/MonadPlus 的每个用例实际上都是这个缺失类的用例。但也许我在这里有点太理想化了。
-
Monoid课程不是已经涵盖了这个吗?您能否详细说明您认为该课程应该具有哪些方法超出Monoid已经提供的方法?
标签: haskell typeclass functor monoids alternative-functor