【发布时间】:2019-10-27 20:07:19
【问题描述】:
我试图理解函子和幺半群之间的关系。它们经常被一起提到,但我无法将这些点联系起来。
我明白,简单地说,在编程中,monoid 可以被认为是一种结构或数据类型,具有用于组合结构中的元素的关联 append/concat 函数以及一个恒等元素,如果你以交换方式组合结构中元素的标识值将始终返回相同的元素。
我还认识到,在编程中,仿函数可以被认为是一个类似于集合的结构,其映射操作类似于Array.prototype.map()。
谁能帮我看看这里的大局?另外,如果我对这些概念的理解有任何遗漏,请随时告诉我。
【问题讨论】:
-
@Fabio 你说的是幺半群吧?
-
仿函数是将纯函数提升到特定上下文中的操作,在该上下文中,除了返回值之外,还会执行相关效果。似乎没有相关的联系。
-
@bob 并非所有仿函数都与效果有关
-
@Bergi 你是说身份吗?我仍然会说 OP 试图将提升与组合进行比较。
-
@Bergi 上下文是容器,我认为效果是不确定的。 Maybe/Optional 不也是一种非确定性效应,您最多只对一个结果感兴趣吗?
标签: functional-programming functor monoids semigroup