首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Semigroup有一个Option类型,并且在Monoid中表现得像一个中性元素?

为什么Semigroup有一个Option类型,并且在Monoid中表现得像一个中性元素?
EN

Stack Overflow用户
提问于 2020-09-03 03:23:28
回答 1查看 56关注 0票数 0

为什么Semigroup有一个Option类型,而在Monoid中没有一个表现得像中性元素?

代码语言:javascript
复制
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?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-03 03:46:33

每个Monoid也是一个SemigroupSemigroup不一定要有标识元素,但同时也是Monoid的每个Semigroup都会有一个标识元素(不需要“了解”这个概念)。

另一个例子:“整数的加法”半群没有形式上的单位元(零)。它没有定义一个。但是你仍然可以加上3 +0=3。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63712312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档