Lisp入门最佳书籍_Common Lisp书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > Common Lisp > Lisp入门最佳书籍
xiaohanyu Common Lisp 的书评 发表时间:2011-10-30 19:10:21

Lisp入门最佳书籍

我一直以为,学习一门编程语言,最重要的不是学习它的语法,而是它能带给你的编程理念上的更新。以这个标准而言,纵观我所接触过的、甚至写过几行代码的编程语言,只有c、java、shell、python、lisp符合这个标准。

c语言自不必说,奠定了所有计算机的基础;shell让我领略到了Unix的编程哲学(组合小的工具完成复杂的任务),多说一句,我认为Shell的精华在于管道;Java让我知道了VM这个概念,虽然我至今依然不太喜欢java;python让我初步领略到了动态脚本语言的美丽,以及其交互式的编程环境(ipython),独树一帜的缩进语法等等;而Lisp则让我在很多方面重新认识了计算的本质和编程语言的设计,诸如数据类型、递归、链表等等(《松本行弘的程序世界》也不错,只是这本书是从ruby的角度写的关于ruby设计时的各种思考和取舍)。

在读这本书之前,我粗略读的是Paul Graham的《ANSI Common Lisp》,Paul是个传奇,创业、编程、文笔、绘画样样精通,都有自己的一套,《ANSI Common Lisp》写得也非常棒,简约不简单,每章都有一些令人称赞的算法和实例,诸如最短路、Ray-Tracing算法等等,书的最后部分甚至实现了一个关于HTML的DSL。

不过,对于很多初学者而言,《ANSI Common Lisp》的学习曲线还是太陡了。偶然间,我发现了这本《Common Lisp : A Gentle Introduction to Symbolic Computation》, 本书的出版年份是1989年,那年我才一周岁,成书大概在80年代初。

本书最初吸引我的是前面几章生动形象的图表,这些图表非常形象地展示了Lisp的很多内在的数据结构的实现,以及Lisp 函数计算的过程,解决了我在读完《ANSI Common Lisp》后依然比较困惑的问题。

随着阅读的深入,收获也越来越多,特别推荐每章最后的Lisp ToolSet小节,让交互式的Lisp编程乐趣多多,比如你可以用sbcl的trace来生动地看到tail recursion和一般recursion的区别。

章节后的某些习题和Keyboard Exercise也不错的,而且本书附录就附带了习题的答案,很赞。

至于学了Lisp之后到底有何用途,以我现在的理解,我只能说,在学了一点Lisp之后,C/C++语言中的很多高级概念,诸如函数指针(lisp里面的高阶函数,(funcall xxx))、Object function(类+运算符重载)、树和链表的内在统一性、递归,迭代,循环的内在联系等等很多我在C/C++时代很难理解的概念,都在Lisp的学习过程中得到了更深入的理解。

而Python、Ruby等动态脚本语言中的很多诸如lambda之类的迷幻特性,还有C++ 0x标准里面最新的lambda函数,其始祖都是lisp。

套用binghe的一句话,大意是,“C和Lisp是编程语言的两个极端,理解了这两个,其余任何编程语言中的问题都不会再成为问题”。

展开全文
有用 38 无用 1

您对该书评有什么想说的?

发 表

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

对“Lisp入门最佳书籍”的回应

Evi 2015-01-31 20:06:39

国人入门首推陈光喜的《Lisp语言》

SUN 2014-07-06 19:25:57

“C和Lisp是编程语言的两个极端,理解了这两个,其余任何编程语言中的问题都不会再成为问题”——加一

Crelle 2013-05-06 16:31:13

写得很好呢