范畴论(Category Theory)是数学的一个分支。研究的不是对象(数值),而是对象与对象之间的关系。
范畴论的产生可能与人脑本身的结构有关。人脑在解决复杂问题的时候,要将大的问题分解成多个小的问题,
分别解决小的问题,再组合起来。这叫做 compose 。论文 The Magical Number Seven, Plus or Minus Two
指出,
人脑只能保留 $7 \pm 2$ 个片断的信息,因此需要层次化结构的程序。
所有研究 compose 的学科,最底层的逻辑都是 Category Theory 。
Category 中包含两个类别的内容:object 和 morphism。
Category 必须满足以下3点要求(才能被称为一个 Category):
compose
) 成 $g \circ f$ (读作g after f
) ,并且:$g \circ f = a \rightarrow c$Category
中的 object
,不承载任何信息,承载信息的(我们重点关注的)是点和点之间的关系(morphism
)
Category 大致可以与编程中的一个类型对应起来。比如如果将整数作为一个 Category,那么object就是所有的整数的值。morphism就是整数与整数之间的变换。
这个阶段,我们关注的变换是单变量的。比如 $1 \rightarrow 2$ 这样的变换,对应的变换的含义其实是 +1
。这时
我们可以说,所有的整数,在 +1
这个变换规则下,再用 +0
作为 id
变换,是可以组成一个 Category 的(符合上面所有Category的要求)。
如果一个函数将一个类型转换为另一个类型,比如输入一个整数,返回是否大于0,那就意味着这个函数将一个Category变换到了另一个Category。这就属于Category之间的变换。在这个大的尺度下,如果将Category看成object,将Category之间的变换看成morphism,那就形成了更大的Category。