加载中...

在函数式编程中,函子(Functor)指任何支持 map(Haskell 中为 fmap)操作的类型构造器:map 接受一个普通函数,把它应用到容器或上下文内部的值上,并保持结构不变。它需满足两条定律:映射恒等函数等于恒等,映射函数组合等于映射的组合。
概念来自范畴论:函子是范畴之间保持结构的映射。编程中的 Functor 是从类型范畴到自身的自函子,列表、Maybe、Promise、树等都可视为函子。
对列表 map 一个函数得到逐元素变换后的新列表;对 Maybe 做 fmap,值存在则变换、缺失则原样传递,调用方无需显式判空。
Functor 是函数式抽象层级的起点,其上依次有 Applicative(应用函子)与 Monad,三者构成 Haskell 标准库的核心类型类层次,也被 Scala、fp-ts 等生态广泛借用。

登录 后参与讨论
暂无讨论,来发表第一条评论吧