首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >么半群和函子之间的关系是什么?

问么半群和函子之间的关系是什么?
EN

Stack Overflow用户
提问于 2019-10-28 04:07:20
回答 2查看 254关注 0票数 1

我试图理解函子和么半群之间的关系。它们经常一起被提及,但我一直无法很好地将它们联系起来。

我知道,简单地说,在编程中,monoid可以被认为是一种结构或数据类型,具有用于组合结构中的元素的关联append/concat函数,以及标识元素,如果您将标识值与结构中的元素进行交换组合,则它将始终返回相同的元素。

我还认识到,在编程中,可以将函数器视为具有类似于Array.prototype.map()的映射操作的类似集合的结构。

有人能帮我看一下这里的全貌吗?另外,如果我在理解这些概念时遗漏了什么,请随时告诉我。

EN

回答 2

Stack Overflow用户

发布于 2022-02-23 12:20:21

是类别之间保持结构的转换函数器。

它

  1. 将对象从一个类别映射到另一个
  2. 的对象,同时还保留对象之间的箭头

有点像范畴之间的同态。

在像Haskell这样的FP语言中,函数器类的定义有两部分:

代码语言:javascript
复制
class Functor f where 
  fmap :: (a -> b) -> (f a -> f b) 

类型f是将对象(Haskell类型)映射到同一类别中的其他对象(Haskell类型)的类型。它将a映射到f a。

么半群(带单位的semigroups)

带操作的集合A set,S

  • combined,• : S × S → S

  • and an element of S,e : 1 → S

在Haskell中定义如下

代码语言:javascript
复制
class Semigroup s => Monoid s where
  mempty  :: s
  
  mappend :: s -> s -> s
  mappend = (<>)

它们是两个不同的东西,但是

他们经常被提到在一起,但我不能很好地把它们联系起来。

他们经常被提到在一起是因为另一件事,Monad。

一元(内函子中的么半群或么半群的特例)是

通过自然转换,itself)

  • along表示(join)

  • and (return)

的

  1. T : S → S ( endofunctor是一个简单的从类别到μ : S × S → S的函子,其中×表示functor composition (join)
  2. and η : I → S,其中I是S endofunctor上的identity endofunctor

它本质上结合了这两个概念。

在Haskell

代码语言:javascript
复制
(>>=)       :: m a -> (a -> m b) -> m b
(>>)        :: m a -> m b -> m b
return      :: a -> m a

暗示

代码语言:javascript
复制
fmap f m  =  m >>= return . f

更简洁地说,

一个单体只是endofunctors,范畴中的一个

么半群,有什么问题吗?,,a,,a,monad,is,a,monad,什么问题?

你可能已经在FP论坛上看到过它被开玩笑地使用过。这是一个版本

是X的内函子范畴中的么半群

最初来自Mac Lane的职业数学家分类。

票数 1
EN

Stack Overflow用户

发布于 2019-10-29 18:15:57

这两个术语都来自范畴论,这是一个数学分支,研究元素的理论,元素之间的关系和元素之间函数的可组合性。这个学科在函数式编程中有很强的影响力,正因为如此,这些术语通常会出现在关于这些范例的讨论中。

在实际中,函数式和么半式术语到编程的转换如下:

Functor 保留了两个不同cathegory的元素之间的结构和关系,这意味着Functor是一个“结构”,它提供一个元素的构造器。(保留结构,因为每个元素都映射到另一个cathegory的元素)和一个映射函数(保留将原始cathegory的每个函数映射到目标函数的关系“函数”)。

monoid 它是定义和标识操作和关联操作的内函数(源和目标存储相同的函数),例如,列表是么半群,因为它定义了标识操作(空列表)和关联操作(append)。

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

https://stackoverflow.com/questions/58582928

复制
相关文章

相似问题

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