函数式编程的两种路线
可能很多人没有意识到,函数式编程(FP)有两种非常不同的路线。
一条路线,为类型疯狂。这条路线的语言以Haskell为代表。这种FP,一切以类型为
中心,编程的主要任务,是要把类型搞对了,让编译器高兴,号称是“如果程序编译通
过了,程序就是对的”。这条线来自学术界,有很长的历史,是FP的主流路线,有很多
其他FP语言以此为模版。科班出身的同学们说到FP,说的就是这条路线的FP。可能他们
上学的时候学过Haskell,甚至可能还给Haskell课当过助教,但是他们恨死了Haskell
。所以这些同学们,是打死不信FP能实用的。
科班出身的同学们不知道的是,FP还有另一条路线,与Haskell完全不同,它为数据疯
狂。这条路线的语言目前只有一个样本,就是Clojure。这条路线是野路子,来自一个
没有CS背景的学音乐的程序员,名字叫Rich Hickey。他发明Clojure是让自己还可以继
续编程下去。他当时主要用C++编程接活,还在NYU教过C++。但2007年的时候他觉得自
己身心俱疲,被并行编程快搞疯了 …