functor

functor函子的理解

functor函子的定义,函子的使用

2018-08-31侠课岛    中级进阶       

前端/前端/ES6函数式编程 9     0     1309

看到函子的时候是不是会联想到函数?就好像看到 javascript 就会觉得和 java 有联系一样......

先来看下函子在维基百科上的定义

在范畴论中,函子是范畴间的一类映射。函子也可以解释为小范畴范畴内的态射。

这里提到的态射,就是两个数据结构之间保持关联结构的一种抽象过程实现,可以理解为对两个数据结构进行映射的过程。函数所要表达的也是一种关系映射过程,那么函子(Functor)和函数的映射有什么关系呢?首先,是否已经对函数表达的映射关系理解了?

给定一个数集A,假设其中的元素为x。现对A中的元素x施加对应法则f,记作 f(x),得到另一数集B。假设B中的元素为y。则y与x之间的等量关系可以用 y=f(x) 表示。我们把这个关系式就叫函数关系式,简称函数。

假设有A和B两个非空集合,如果按照某种对应关系F,对于集合A中的任何一个元素a,在集合B中都会存在唯一的一个元素b与之对应,那么,这样的对应关系F叫做集合A到集合B的映射。定义在非空数集之间的映射称之为函数,这样的映射类型体现在特定类型的集合之间。

举个例子:

const plus = (val) => {
  return val + 1
}

plus 函数是两个集合的映射关系,数值类型的值运行 plus 之后,会得到一个唯一与之对应的值,plus的输入参数个数和类型也是固定。

本教程图文或视频等内容版权归侠课岛所有,任何机构、媒体、网站或个人未经本网协议授权不得转载、转贴或以其他方式复制发布或发表。

评价

9

本课评分:
  •     非常好
难易程度:
  •     适中的
|
教程
粉丝
主页

签到有礼

已签到2天,连续签到7天即可领取7天全站VIP

  • 1
    +2 金币
  • 2
    +3 金币
  • 3
    +5 金币
  • 6
    +7 金币
  • 5
    +6 金币
  • 4
    暖心福利
    自选分类VIP ×1天
  • 7
    惊喜大礼

    自选分类VIP ×3天 +20金币
  • 持续签到 +8 金币

金币可以用来做什么?