不一样的语言入门书
2006-10-23
ML意味着meta language, 本书是学习ML排名第一的课本.
英文标题信息是这样的:
PAULSON, LAWRENCE C. (Univ. of Cambridge, Cambridge, UK)
ML for the working programmer (2nd ed.).
Cambridge University Press, New York, NY, 1996,
478 pp., $32.95, ISBN 0-521-56543-X.
这里要强调1996的是,现在流行的ML的编译器,都是按ML '97标准的.但我没有看出这本书有什么不合适的地方. 这个问题我也想请专家指教. 中文版写的原版的出版日期是2001,这是我比较有疑问的.
还有,这本书称为working,也是很有意思的. 因为,很多人都有疑问,函数式程序设计语言,有可以working的吗?作者显然是要写一本可以working的书. 我想,这是本书最大的特点. 这个特点带来了两个后果,一好一坏.
我们先谈坏的一方面.命令式程序设计语言及其相关书籍看过不少,LISP也简单看过,但还是不得不说,ML是我看起来觉得最难的书.这应该是作者要写working的ML付出的代价. ML虽然也working,但有其working的领域,主要还是定理证明机,就像最初设计ML的动机所指示的. 因为,这本书有很多章节与此有关,而这并不是一个大多数读者熟悉的领域,所以,大多数读者应该与我一样,会觉得这本书可能是很难读的.
好的方面,如果你读完了这本书,并且按要求完成了练习,不仅学会了ML语言,而且也学会了一个ML working的领域,定理证明机.
我学这本书是读到第4章最后重言式检测器时,才找到感觉的.
关于重言式检测的手工做法,我有过讨论:
http://www.douban.com/group/topic/1192440/
我没有动手去写一个计算机程序,是因为这觉得这有一点难. 而在这本书有一个例子,50行以下的代码. 也许一个更完善的一点的程序还需要能读入一个重言式,这大概要增加一两百行代码. 正是这不到50行的代码给了我定理证明的感觉,ML working的感觉.
本书共9章,第6章是数学,第8和9章是例子,而要读完第4章才能找到点感觉,可以说明,这本书真的不很容易读.
虽然也有人用ML写web应用,或者别的什么应用,但我们学ML真的是为了要写一个ERP或CRM或一个操作系统吗?如果不是想了解一些逻辑或证明的东西,我们会学ML吗? 所以,综合考虑, 这本书的确是学习ML的第一本教材.
我还没学好ML,所以这个书评也写得特别胆小委琐,非常惭愧.