Lambda演算与白马非马论
概念与符号
概念是人脑对具体事物、动作和行为的【抽象】,进而以【符号】表达出来。最典型的符号就是数字、文字。“苹果”是对一种水果的抽象,代指了过去的、现在的、未来的、所有的那种水果。
统称与特指
“苹果”、“马”都是对某一类事物的统称,符号与实体之间的关系是一对多。而“达芬奇”、“李白”却特指着历史上的两位天才人物,符号与实体之间的关系是一对一。
认知与计算
每个人在大脑里建立概念与实体或事物之间的联系的过程,就是一个【学习】与【认知】的过程,这个过程无论有多么复杂,无非就是【符号计算】。
归纳与演绎
当我们从“孔洞”、“轮子”、“太阳”等实体抽象出“圆”这个概念或者说给出数学定义的时候,就是【归纳】的过程。当我们说“屋子有一个圆顶”的时候,就是将“圆”这个概念【演绎】或着说是【施用】到了“屋顶”这个实体上。
分解与合并
我们人类的大脑里永远都有对实体事物进行【分】与【合】的冲动。这两种冲动也许是推动大脑进行运算的源动力。【分解】是一种提取、隔离的运算,【合并】是一种融汇与归并的运算。
Lambda演算与白马非马论
对现实世界的描述,无非就是综合了【归纳、演绎、分解、合并】的【符号表达式】。中国哲学有一个派系叫【名家】,典型的代表人物叫【公孙龙】,他有一个著名理论:【白马非马论】,字面意思是,白马不是马。第一眼看起来有点可笑,然而我们仔细去思考,确实能发现“白马不是马”。因为“马”是一种动物的抽象概念,而“白马”是白色的那种动物的抽象概念,白马当然不等价于马,准确的说法应该是:白马不等价于马,白马是马的一个子集。
从Lambda演算的角度来看,白马非马论其实可以表达成:
(Lambda颜色 。色马)白 ==> 白马
也就是说:
首先从一类动物实体中抽象出“马”这个概念,然后从可见实体中抽象出“颜色”这个概念,而“色马”就是“马”与“颜色”的结合,将“白”这个符号施用到“色马”这个符号上,于是就得出了“白马”这个符号。
Lambda演算中有两种最基本的运算:【抽象】与【施用】。抽象是对某一实体的某一原子属性(不可再细分为其他属性的合体了)的抽取和剥离;施用是将某一抽象属性应用与施展到另一个抽象概念上,让这个概念更加具体化,比如“白马”就要比“马”更具体一些。
在Lambda演算理论中,不难找出【面向对象编程】的思想,因为面向对象编程的核心无非就是:【抽象、封装、继承、多态】,这和【归纳、演绎、分解、合并】又有什么本质的区别呢?都是统一的套路。
当我们学习现代数学,看到一堆数学公式和符号的时候,就会感到头大,在中国传统学术中,也一直没有建立起类似西方的这一套基于抽象符号表达和逻辑推导的思维习惯,这和公孙龙被杀害导致后期【名学】没有得到充分发展可能是有很大关系吧。