Lisp到底有多好?实际上很难用好不好来判断它。
毕竟是存在了50多年的始祖语言了,很多地方看上去不是那么“现代”。但是一个无法避免的现象是,越来越多的语言,例如Python/Ruby/Java,都变得越来越像Lisp。将函数作为编程语言中的一等对象直接对其操作,也是现代编程语言的一个共识。这些特性在Lisp中都早已实现。Javascript更是一个披着C语言外衣的Lisp。实际上,连虚拟机都是Lisp最先有的。如果把很多现代编程语言看作是类的话,Lisp就像是基类。
那么,为什么Lisp没有流行起来?其实Lisp曾经流行过,甚至有过专门以Lisp内建函数为CPU指令的Lisp Machine。那么为什么Lisp又“没落”了?因为人类的习惯是很难改变的。从最开始的Fortran,到后来的C,其代码组织方式都是符合人类习惯的,命令式的。而Lisp的创始人是一位数学家,而Lisp的代码组织形式符合的是逻辑,是数学。因而有一种“处庙堂之高”的感觉。
不过,我十分确定的是,即使不在工作中使用Lisp,它也会帮助你写出更好的程序,也会帮你更好地理解编程语言本身。著名的开源文档《如何成为一名黑客》里,作者将Lisp列为黑客应该学习的五种编程语言之一,并且也认为学习Lisp会给程序员带来莫大好处的观点。
除此之外,很多著名黑客和计算机大师都给于Lisp极高的评价。前一段时间出版的《黑客与画家》的作者,也是本书的作者Pual Graham便是其中的一位。在《黑客与画家》中,PG深入讨论了各种编程语言,并充分给出了“为什么Lisp是目前为止最强大的编程语言”的证据,值得一读。
这本书适合初学者。前半本书对Lisp很多基本的东西,从最初的代码组织形式(前缀表达式形式),到基本的数据结构(列表、元组、字典等),再到函数,都讲得十分详细,甚至有时候你会觉得太详细了(但是并不冗余)。
除了讲解Lisp的基本语法,书中还有一些关于Lisp特有的语言元素的讲解(不过可以看到的是,这些语言元素已经被很多现代语言所借鉴了),例如map、reduce的实用。通过这一部分的讲解,你可以对Lisp的强大之处有一个初步的了解,这一部分也算是Functional Programming的入门(FP的一个重要特性便是List Comprehension)。
通过前半本书的学习,初学者可以对Lisp有一个直观的认识,写一些基本的程序也没有问题了,例如快速排序。
后半本书比较偏向于介绍。介绍了Lisp的面向对象系统CLOS,包管理机制、强大的Macro,以及三个例子。当然,对于理解Lisp的高级特性,这些是不够的。不过再此之上可以阅读更多的书籍,例如同样是PG写的《On Lisp》,这本书对Macro做了详细介绍。
总的来说,这本书的讲解十分详细(我是看英文版的,依旧十分流畅)。但是由于作者只着眼于Lisp语言本身,并没有涉及太多实际开发相关的内容。所以推荐阅读完本书后阅读《Practical Common Lisp》作为补充。
Lisp到底有那么好么?实际上不应该用“好”来评判它
对“Lisp到底有那么好么?实际上不应该用“好”来评判它”的回应
《ANSI Common Lisp》热门书评
-
Lisp到底有那么好么?实际上不应该用“好”来评判它
23有用 0无用 [已注销] 2011-09-14
Lisp到底有多好?实际上很难用好不好来判断它。毕竟是存在了50多年的始祖语言了,很多地方看上去不是那么“现代”。但是一个无法避免的现象是,越来越多的语言,例如Python/Ruby/Java,都变得越来越像Lisp。将函数作为编程语言中的一等对象直接对其操作,也是现代编程语言的一个共识。这些特性在...
-
Lisp程序员写的Lisp入门书
3有用 0无用 ynwzhao 2013-01-20
本书的作者不用作过多介绍,主要是我知道的也不多。我猜测,大部分想学Lisp的人都是因为看了他的另一本传道般的书。所以跟随他的脚步,去探索Lisp世界。那你就先去看看他的the root of lisp,率先感受一下Lisp的美。然后就是这本书,将它作为唯一的入门书看完。往上有中文版的,但是恕我不敬,...
-
在读中文翻译版的注意了
1有用 2无用 小小蜗的牛 2015-08-07
http://acl.readthedocs.org/en/latest/zhCN/index.html如果有在读这个中文翻译版,请注意了:实在有够让我失望的翻译。我以为这样子开源式的放在Github上面的方式会翻译的有多好呢!当我看中文无法理解完全而去看英文原版的时候,才发现原版是如何完整的表达了...
书名: ANSI Common Lisp
作者: [美] Paul Graham
出版社: Prentice Hall
出版年: 1995-11-12
页数: 432
定价: USD 116.40
装帧: Paperback
ISBN: 9780133708752