Functor Concept

2021-11-01 20:20:34
#函数式编程#数学#逻辑学

函子 (Functor)

在函数式编程中,函子是一个实现了 map 函数的容器或上下文。它允许我们将一个函数应用到容器内部的值上,而无需改变容器本身的结构。

核心定义

一个函子必须满足以下条件:

  1. 包含一个值或一组值。
  2. 提供一个 map 方法。
  3. map 方法接受一个函数作为参数,将其应用于容器内的值,并返回一个新的函子。

函子定律

  • 恒等律 (Identity): container.map(x => x) === container
  • 组合律 (Composition): container.map(f).map(g) === container.map(x => g(f(x)))