幺
实例化 Monoid
的类型包括具有 Monoid
返回值的列表,数字和函数等。要实例化 Monoid
,类型必须支持组合其值的关联二元运算(mappend
或 (<>)
),并且具有特殊的零值(mempty
),以便将值与其组合不会更改该值:
mempty <> x == x
x <> mempty == x
x <> (y <> z) == (x <> y) <> z
直观地说,Monoid
类型是类似列表的,因为它们支持将值附加在一起。或者,Monoid
类型可以被认为是我们关心订单而不是分组的值序列。例如,二叉树是 Monoid
,但是使用 Monoid
操作我们无法看到它的分支结构,只能遍历其值(参见 Foldable
和 Traversable
)。
必需的方法
mempty::Monoid m => m
mappend::Monoid m => m -> m -> m
直接超级类
没有