例項化 Monoid型別包括具有 Monoid 返回值的列表,數字和函式等。要例項化 Monoid,型別必須支援組合其值的關聯二元運算(mappend(<>)),並且具有特殊的值(mempty),以便將值與其組合不會更改該值:

mempty  <>  x == x
x <>  mempty  == x

x <> (y <> z) == (x <> y) <> z

直觀地說,Monoid 型別是類似列表的,因為它們支援將值附加在一起。或者,Monoid 型別可以被認為是我們關心訂單而不是分組的值序列。例如,二叉樹是 Monoid,但是使用 Monoid 操作我們無法看到它的分支結構,只能遍歷其值(參見 FoldableTraversable)。

必需的方法

  • mempty::Monoid m => m
  • mappend::Monoid m => m -> m -> m

直接超級類

沒有