blog
中文翻译
»
函数式编程另类指南
http://chn.blogbeta.com/232.html
第
2
页
共
20
页
2007/1/29 20:03
那么什么是函数式编程呢?它怎么产生?它可以被掌握吗(
Is it edible)
?如果它真如其倡导者所言,为什么没有在行业中得到更广泛的使用?为什么好像只有那些拿着博士学位的人才使用它?最要紧的是,为什么它就
TMD
这么难学?这些
closure, continuation, currying
,惰性求值和无副作用等等究竟是些什么东西?没有大学参与的项目怎么使用它?为什么它看上去这么诡异于和我们命令式思想友好,圣洁和亲近的一切的一切?我们将于不久扫清这些疑问。首先让我来解释形成实际生活和学界文章之间巨大隔阂的缘起,简单得像一次公园的散步。
信步游园
启动时间机器,我们散步在两千多年以前的一个被遗忘了太久的春季明媚的日子,那是公元前
380
年。雅典城墙外的橄榄树树荫里,柏拉图和一个英俊的奴隶小男孩朝着学院走去。
“
天气真好
”
,
“
饮食不错
”
,然后话题开始转向哲思。
“
瞧那两个学生,
”
为了使问题更容易理解,柏拉图仔细地挑选着用词,
“
你认为谁更高呢?
”
小男孩看着那两个人站着的水漕说,
“
他们差不多一样高
”
。柏拉图说:
“
你的差不多一样是什么意思?
”
。
“
我在这里看他们是一样高的,不过我肯定如果走近些就会看出他们高度的差别。
”
柏拉图笑了,他正把这个孩子带到正确的方向。
“
那么你是说,我们这个世界没有完全的等同了?
”
小男孩想了一会儿回答,
“
对,我不这样认为,任何事物总有一些区别,即使我们看不到它。
”
这句话非常到位!
“
那么如果这世上没有完全的相等,你又是如何理解
‘
完全
’
相等这个概念的呢?
”
小男孩迷惑得说:
“
我不知道。
”
最初尝试着理解数学的本源(
nature
)时也会产生这种疑惑。柏拉图暗示这个世上的万物都只是一个对完美的近似。他还认识到我们即使没有接触到完美但依然可以理解这一概念。所以他得出结论,完美的数学形式只能存在于另一个世界,我们通过和那个世界的某种联系在一定程度上知晓他们。很明显我们不能看到完美的圆,但我们可以理解什么是完美的圆并用数学公式将它表达出来。那么,什么是数学?为什么宇宙可以用数学定理描述?数学可以描述宇宙中的所有现象吗?
[2]
数学哲学是一个很复杂的课题。像大多数哲学学科一样它更倾向于提出问题而不是给出解答。这些意见中很多都循回绕转于一个事实,即数学实际上是一个谜语:我们设置了一系列基本的不冲突的原理和一些可以施加于这些原理的操作规则,然后我们就能堆砌这些规则以形成更复杂的规则。数学家把这种方法叫做
“
形式系统
”
或
“
演算
”
。如果愿意,我们可以很快写出一个关于
Tetris
(译者注:一种通常被称为俄罗斯方块的游戏)的形式系统。实际上,工作中的
Tetris
实现就是一个形式系统,只是被指定使用了个不常见的表现形式。人马座的那个生物文明也许不能理解我们的
Tetris
和圆的范式,因为可能他们唯一的感知输入是气味香橙的橘子。他们也许永远不会发现
Tetris
范式,但很可能会有一个圆的范式。我们也可能将无法阅读它,因为我们的嗅觉没有那么复杂,可是一旦我们理解
(pass)
了那一范式的表示形式(通过这种传感器和标准解码技术来理解这种语言),其底层的概念就可被任何智能文明所理解。有趣的是如果从来没有智能文明存在,
Tetris
和圆的范式仍然严密合理,只是没有人注定将会发现他们。如果产生了一种智能文明,他就会发现一些形式系统来帮助描述宇宙的规律。但他还是不大可能发现
Tetris
因为宇宙中再没有和它相似的事物。在现实世界中这类无用的形式系统或迷题的例子数不胜数,
Tetris
只是其中的一个典型。我们甚至不能确定自然数是否是对客观世界的完整近似,至少我们可以简单的想像一个很大的数它不能用宇宙中任何东西描述,因为它以近乎无穷。
历史一瞥
[3]
Leave a Comment