#2017_10_2 18:13
每日阅读
写给程序猿的范畴论
The preface
作者一直致力于为程序猿(而不是科学家)写一本范畴论的书。他非常渴望向别人去解释范畴论这门学科。虽然他没有Richard Feynman能够用简洁的语言去阐释,但是他会尽他所能去阐释清楚。
我会努力用简洁的语言去表达,使得你确信这本书是为你而写的。(范畴学作为数学中最为抽象的分支,但其实并没有那么难)。具体原因如下:
首先,范畴论是非常有用的编程思想宝藏。Haskell 程序猿们已经接触该理论很久了,其中的一些思想正在渗入其他语言,只是这一过程是非常缓慢而已,我们需要使之加速。
其次,数学学科有很多分支,它们面向于不同的受众。但范畴学的思维方式与程序猿如出一辙。这是因为范畴学处理的是结构,而不是细节。具体来说,处理的是让程序具有复合(组合)关系的结构。
复合关系是范畴论的精髓,它也是范畴论自身定义的一部分。我会证明编程的本质是『复合』。我们一直都在组合一些东西,这种行为从很久以前一群伟大的工程师提出子程序的时代就开始了。很久以前,结构化编程(面向过程)原理掀起了编程的革命,它立足于代码级别的复合。伴随面向对象编程而来的则是对象的复合。函数式编程不仅仅设计函数的复合与代数数据结构,它还提供了对并发计算的支持,这是其他编程范式难以实现的。
第三,我有秘密武器,一把庖丁之刀,我要用它将数学大卸八块使之成为程序猿的美味佳肴。如果你是数学家,你不得不大胆假设,小心求证,严格的构造你的定理,然后产生令外人难以卒读的论文与专著。我是训练有素的物理学家,在物理学中,我们使用着并不正规的推理来取得令人激动的发现。数学家们嘲笑伟大的物理学家 P. A. M. Dirac 为求解一些微分方程而提出的狄拉克 δ 函数,但是当他们发现了一个叫做广义函数论的新的数学分支时,他们就不笑了,因为广义函数论只是对 Dirac 观点的一种形式化描述。
当然,采用不严肃的论证方式很容易产生谬论。因此在这本书中凡是遇到不正式的论证时我会尽力确定其背后存在着相应的实际数学理论。我床头有一本被我翻的破破烂烂的 Saunders Mac Lane 写的《Category Theory for the Working Mathematician》。