函数式编程的另类指南(2)

By | September 8, 2013

The following part is not maintained anymore. Please go to 函数式程序设计的另类指南 for the whole translation.

以下内容不再更新,浏览全部翻译,请访问 函数式程序设计的另类指南


原文链接:Functional Programming For The Rest of Us
原文作者:Vyacheslav Akhmechet

信步游园

启动时间机器,我们来到两千多年前的一个公园里。具体时间大约是公元前380年的一个春光明媚的周日。在雅典城外的橄榄树树荫里,柏拉图(Plato)和一个英俊的奴隶小男孩正朝着学院走去。那天天气很好,晚饭也不错。他们边走边讨论一个哲学问题。

为了使问题更有教育意义,柏拉图小心地挑选着词句:“瞧这两个学生,你认为谁更高呢?”小男孩看了看那两个站在水池中的人,说,“他们俩差不多高”。柏拉图问:“你说‘差不多’是什么意思?”。“恩……我在这儿看他们是一样高的,不过我肯定如果走近些就会看出他们的差别。”

柏拉图笑着把这个孩子引向正确的思路。“那么你是说,这个世界上没有完全的相同的两个东西了?”小男孩想了一会儿回答,“对。我想,即使我们看不到,任何事物之间总有一些区别。”正中下怀!“那么如果这世上没有完全相同的两个东西,你怎么理解‘完全’相等这个概念呢?”小男孩有点被问住了,说:“我不知道”。

这就是我们第一次尝试理解数学的本源。柏拉图提出世界上所有的事情都只是趋近于完美。他同时也意识到,尽管我们无法真正碰触到完美的事情,但是我们可以理解它。因此完美的数学仅存在于另一个世界中,而我们可以通过和那个世界的某种联系在一定程度上认知它。比如,虽然我们无法看到绝对完美的圆,但是我们知道什么是圆,并且能够用公式表达它。那什么是数学呢?为什么宇宙可以用数学定理来描述?数学可以描述宇宙中的所有现象吗?

数学哲学是一个很复杂的课题。像大多数哲学学科一样它更倾向于提出问题而不是给出答案。很多得出的共识都围绕着一个事实:数学真的是个谜。我们首先给出一些基本的、互不冲突的原理,以及一些可以操作这些原理的规则;然后我们组合这些规则生成更复杂的规则。数学家把这种方法叫做“形式系统”或“微积分”。如果愿意,我们可以很快为俄罗斯方块写出一个形式系统。实际上,一款俄罗斯方块游戏本身就是一个形式系统,只不过游戏采用了非数学的表现形式。

半人马阿尔法行星上的毛毛生物文明不能理解我们对于俄罗斯方块或者圆的范式,因为它们唯一可以感知世界的器官可能只有嗅觉。他们也许永远不会发现俄罗斯方块的范式,但很可能会有一个圆的范式。而我们也可能无法如何通过嗅觉描述一个圆,因为我们的嗅觉没有那么复杂。可是一旦我们能理解那一范式的表示形式(比如通过各种传感器和标准解码技术来理解这种语言),其底层的概念就可被任何智能文明所理解。

有趣的是,即便宇宙中从没有过智能文明,俄罗斯方块和圆的范式仍然存在,只是没有人发现它们而已。如果一种智能文明出现了,他应该能发现一些形式系统来描述宇宙的规律。但他还是不大可能搞一个俄罗斯方块, 因为宇宙中再没有和它相似的东西。在现实世界中这类无用的形式系统或迷题的例子数不胜数,俄罗斯方块只是其中一个典型的例子。我们甚至不能确定自然数是否是对客观世界的完整近似。比如我们可以很容易的想出一个特别大的数字,它无法表达我们世界中的任何事物,因为我们的世界有限的,而这个数近乎无穷。

Leave a Reply

Your email address will not be published. Required fields are marked *