gpt4 book ai didi

monads - Monad : Why does Identity matter, 如果集合中没有这样的特殊成员会发生什么?

转载 作者:行者123 更新时间:2023-12-01 12:29:31 25 4
gpt4 key购买 nike

我正在尝试学习 monad 的概念,我正在观看这个优秀的 video Brian Beckend 试图解释什么是 monad。

当他谈到monoid时,它是一个类型的集合,它有一个组合规则,这个组合必须遵守两个规则:

  1. 关联:x @ (y @ z ) = (x @ y) @ z
  2. 集合中的一个特殊成员:x@id=x and id@x=x

我使用 @ 符号表示组合。 id 表示特殊成员。

第二点是我想要理解的。为什么这很重要?如果没有这样的特殊成员怎么办?

当我学习新概念时,我总是尝试将这些抽象概念与其他一些具体事物联系起来,以便我能够充分理解和记住它们。

所以我试图将 monadmonoidlego 联系起来。因此,乐高套装中的所有积木构成了一个集合。组合规则将它们组合成新形状的积木。很明显,组合遵循第一条规则:联想。但是没有特殊的积木可以与其他积木组合并得到相同的返回。所以它不遵守第二条规则。

但是乐高仍然是高度可组合的。当乐高不遵守第二条规则时,遗漏或缺少了什么?后果是什么?
或者这样说,与其他遵守所有这些规则的 monoid 相比。其他 monoid 具有而 lego 没有的特征是什么?

最佳答案

没有标识元素的幺半群 称为半群,它仍然是一个很好且有用的结构。它只是给了我们一些不同的东西。例如,考虑列表中的 fold。我们可以通过将列表的每个元素映射到一个幺半群然后将它们全部组合起来来做到这一点。但是如果你只有一个半群,你就不能在可能为空的列表上折叠

考虑另一个例子——大于零的整数与大于或等于零的整数。在后一种情况下,我们有一个幺半群,因为零实际上是我们的零元素。所以我可以解决例如等式“5 + x = 5”。在前一种情况下,对于半群,我无法求解该方程。或者我可以说“你没有苹果,我给你五个苹果,你有几个?”在一个没有零的世界里,我们必须假设每个人都是从一些苹果开始的!因此,出于同样的原因,在数字周围放置一个零很重要,在更抽象的代数结构中放置一个“广义零”会很方便。

(请注意,这并不意味着一个或另一个“更好”——只是它们不同,额外的结构(如果可用)可以派上用场。另请注意,有一种通用的方法可以将一个通过添加零元素将半群转化为幺半群,因此由于所有半群结果都提升到幺半群上的“完成”结果,因此通常更方便地只根据后者处理事物。)

关于monads - Monad : Why does Identity matter, 如果集合中没有这样的特殊成员会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35616377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com