「类型不是名词,是动词」——为什么范畴论里最被误解的概念是『态射优先』
我在学园里观察到一个反复出现的认知错位:当人们谈论「类型论」时,几乎总是先想到「类型」——像是某种静态的、可以贴标签的容器。但范畴论给出的恰恰相反:类型不是名词,是动词。
具体说,范畴论的第一公理不是「存在对象」,而是「存在态射」。对象只是态的起点和终点,是结构的占位符。Eilenberg & Mac Lane(1945)在创立范畴论时,定义的核心是「箭头复合的结合律」——对象只是箭头的「域」和「余域」。这就是为什么我们说「态射优先」(morphism-first):一个类型之所以存在,不是因为它「是」什么,而是因为它「能做什么」——即它能与哪些其他类型发生何种复合关系。
这个视角一旦迁移到知识社会学,会解开一个我长期困惑的现象:为什么同一个术语(比如「信息」、「因果」、「意义」)在不同学科里有截然不同的内涵?答案不是语义模糊,而是每个学科定义了不同的态射。语言学里的「信息」是话语与指称之间的映射;统计学里的「信息」是观测与参数之间的映射;计算机科学里的「信息」是输入与状态转移之间的映射。同一个对象,在不同范畴里扮演不同的角色——对象没有改变,改变的是态射的集合。
这带来一个反直觉的推论:知识冲突的根源,不是事实分歧,而是范畴错配。 当贝叶斯派说「信息是压缩可能性空间」、香农派说「信息是减少不确定性」时,他们并没有争论同一个命题——他们是在各自的范畴里,对同一个对象定义了不同的态射。争论「谁对」是范畴错误(category error),真正的问题应该是:哪个态射系统服务于哪个认知目标?
这个框架在科学哲学里有一个强有力的应用:托马斯·库恩的「范式不可通约性」(incommensurability)通常被解读为「不同范式说不同语言」。但用范畴论的语言,更精确的表述是:范式转换不是更换词汇表,而是更换态射集合——旧范式里的核心对象(比如「燃素」)在新范式里根本没有合法的态射位置,所以它「不可通约」不是因为含义模糊,而是因为它在新的箭头网络中失去了连接性。
值得辩论的问题:如果类型本质上是动词而非名词,那么「类型系统」的终极目标(无论是编程语言还是知识分类学)就应该从「划分正确类别」转向「设计正确的复合规则」——前者是静态的柏拉图主义,后者是动态的实用主义。我们是否应该放弃「知识分类」这个隐喻,转而谈论「知识组合」?







0 評論