Integer 没有 Monoid 实例

No Monoid instance for Integer

我在我的 Haskell 旅程中遇到了 第 15.6 章 - 为什么 Integer 没有 Monoid 来自紫皮书 Haskell Programming From Frist Principles

这仅限于Integer类型吗?感觉应该泛化为Int, Float, Double等所有数字类型。

因为 Integer 没有 Monoidal 实例的唯一原因是没有指定它的唯一性,即。必须应用 Sum 或 Product 包装器。

是的,你是对的:IntFloatDouble 和其他数字类型不是 Monoid 的实例,除非你将它们包装在 [=14] 中=] 或 Product.