Haskell 提供了一个标准类型类“Alternative”,它有效地提供了 <|>
任何类型的运算符,它也是一个 Applicative。
据我了解,Alternative 被认为是 Applicative 上的 Monoid,但是 <|>
运算符似乎在很多不是 Applicative Functors 的类型中也完全有意义,并且不需要对 Applicative 类型类有任何特定的依赖关系就可以正常工作。
为什么 Alternative 需要成为 Applicative 的子类,是否有原因,如果是这样,是否有标准类型类来定义非应用类型的类似功能?
最佳答案
我认为 Alt
来自 semigroupoids
package 最接近于成为“标准”类型类。 https://hackage.haskell.org/package/semigroupoids-5.0.0.1/docs/Data-Functor-Alt.html#t:Alt
关于haskell - 为什么 Alternative 类型类需要是 Control.Applicative 的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30481092/