我需要使用一个数字(Rational)作为 Writer Monad 的日志类型。不幸的是,数字不是幺半群。是否有一个模块(或其他东西)将 Numbers 实例化为 Monoid,还是我应该自己做?
(我只是想知道它是否已经存在于某个地方,而不是重新发明轮子,如果需要,我不需要帮助自己做这件事)
最佳答案
将数字视为幺半群(加法或乘积)有多种可能的方法,因此您必须使用包装器来选择一种方法。请参阅docs for Data.Monoid - Sum
或 Product
。显然,如果您想要其他操作,您应该编写自己的操作。
关于haskell - 使用 Number 作为 Monoid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3529548/