[英]Why does Semigroup has an Option type and behave like a neutral element in Monoid?
為什么 Semigroup 有一個 Option 類型而 None 在 Monoid 中表現得像一個中性元素?
val two: Option[Int] = Option(2)
val n: Option[Int] = None
n |+| two should be(Some(2))//why do we have the opportunity to do this?
two |+| n should be(Some(2))//n look like neutral here
Semigroup[Option[Int]].combine(Option(1), None) should be(Some(1))//why does semigroup has it?
每個Monoid
也是一個Semigroup
。 Semigroup
不一定有單位元素,但每一個也是Monoid
Semigroup
總會有一個(不需要“知道”這個概念)。
另一個例子:“整數加法”半群不正式擁有單位元素(零)。 它沒有定義一個。 但是您仍然可以添加 3 + 0 = 3。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.