的文档代数/2.1.1.2/doc/html http://hackage.haskell.org/packages/archive/algebra/2.1.1.2/doc/html/Numeric-Algebra-Class.html#t:Multiplicative显示了大量的类型类。
我如何声明所讨论的结构必须配备交换关联运算和单位/单位元素,但没有其他任何东西(逆,分配性等)?
我在想
reduce :: Monoid m => (a -> m) -> [a] -> m
但 Data.Monoid 的实例不应该是可交换的,我希望我的函数的用户通过查看类型来了解他们需要可交换性才能使函数正常工作。
(Abelian m, Monoidal m)
看起来可能是这样Monoidal
比你想要的要多得多,但这一切都是基于Natural
成为一个Semiring
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)