Functor(函子):数学(范畴论)和计算机科学中的概念,指一种把一个范畴中的对象与态射(映射)系统地对应到另一个范畴中的结构保持映射。通俗说:它不仅“映射东西”,还会把“关系/箭头”也一起按规则映射过去,并保持结构(如恒等态射与复合)。
在函数式编程里,Functor常指一种类型类/接口:允许你在“容器/上下文”里对值做映射(如 map/fmap),而不改变容器结构。
/ˈfʌŋktər/
A functor maps objects and arrows from one category to another.
函子把一个范畴中的对象和“箭头”(态射)映射到另一个范畴中。
In Haskell, the Functor type class lets you apply a function to values inside a context while preserving the structure.
在 Haskell 中,Functor 类型类让你把函数作用在“上下文/容器”里的值上,同时保持结构不变。
functor由拉丁语词根 **funct-**(与“执行、履行”相关,来自 fungi)加上表示“执行者/起作用者”的后缀 -or 构成。该词在现代数学中被用作术语,强调它在不同结构之间“起作用”的映射角色,后来也被函数式编程借用并推广。
fmap 的直观用法)