Common Lisp 学习资源
Update:2025-03-30
作为一门古老而长寿的语言,几十年来积累并流传下来了很多的经典书和资料,可谓十分充足,这些书都可以慢慢地品读,因为它们不会过时。
1. 书籍
- 《黑客与画家》
作者 Paul Graham 曾经也是一名 Lisp 黑客,著有《ANSI Common Lisp》和《On Lisp》两本书。在这本书中他极力推崇 Lisp 语言。
Paul Graham 现在更推荐的 Lisp 方言是 Clojure(https://x.com/paulg/status/728831131534024704)。
- 《Land of Lisp》
前几年才出版的一本 Common Lisp 入门书籍,官方网站:http://landoflisp.com。
书中解释了 Lisp 为何强大,并到处穿插着漫画和作者的幽默,并且很多概念写得很细,推荐给完全没学过 Common Lisp 的人
- 《Practical Common Lisp》
中文版《实用 Common Lisp 编程》由田春翻译,目前纸质版已很难买到。但原书作者已公开了全部内容,可在 http://www.gigamonkeys.com/book 找到;同时田春也在 Github 上发布了译版:https://github.com/binghe/pcl-cn。
如书名,本书以很多实用技术为案例讲解,比如开发一个单元测试框架、用贝叶斯做过滤器、写一个二进制解析器等等。本书出发点虽为入门级,作为一名完全没接触过 Lisp 的初学者不建议直接啃本书,而是作为另一本来交叉参考。
- 《ANSI Common Lisp》
Paul Graham 写的一本 Common Lisp 入门书,中文简/繁体版见:http://acl.readthedocs.org/en/latest
- 《Common Lisp: A Gentle Introduction to Symbolic Computation》
这本我从头到尾读过两遍,从入门的角度来说,作者对内容拿捏得刚好合适,并且不涉及高级的部分(如 CLOS),直接读原版也很轻松。
在通读之前,需要先准备好一个 Common Lisp 环境,因为书中没有“如何安装某个 CL 实现”的内容。
- 《Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp》
简称 PAIP,一本 Common Lisp 的巨著,介绍了人工智能以及 Common Lisp 编程的各方面,目前已经开源:https://github.com/norvig/paip-lisp。
- 《Common Lisp the Language, 2nd Edition》
Common Lisp 中的圣经级读物,包含了 Common Lisp 的方方面面,此书相当厚重,打印出来有上千页。
原始版下载:http://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html
带书签的 PDF 版(推荐):https://ldbeth.sdf.org/cltl2.html
- 《Structure and Interpretation of Computer Programs》
中文名《计算机程序构造和解释》,书中虽用的 Scheme 方言,但同样也适用于其他 Lisp 方言。这是一本介绍程序抽象相当好的书,并且书后面介绍了如何实现一个 Lisp 解释器。虽然本书对程序设计极其有帮助,我更偏向于将它作为理解 Lisp 本质的书。
- 《Lisp in Small Pieces》
如果你对《计算机程序构造和解释》中如何实现一个 Lisp 解释器感兴趣,我推荐《Lisp in Small Pieces》,这本书专讲如何从头开始设计一个 Lisp 解释器,包括支持 Lisp1、Lisp2、词法作用域等等。书中例子是用 Scheme 写的,但也可以翻译成 Common Lisp 版的。
- 《Object-Oriented Programming in Common Lisp》
Common Lisp 支持面向对象编程,有一套面向对象系统叫作 CLOS(Common Lisp Object System),本书就是专门介绍 CLOS 的,适合想深入学习 CLOS 的阅读。
- 《Loving Common Lisp, or the Savvy Programmer's Secret Weapon》
如果你期待有“21 天精通 Common Lisp”或者“7 天 Commom Lisp 入门”这种书,本书就推荐给你,可以在 Leanpub 上购买此书,本书简短介绍了 Common Lisp一些基础知识,然后给出了一些实际例子,比如如何操作 MongoDB 等。这本书适合那些觉得 Common Lisp 学了找不到工作或者没什么实际用途,但又想简单了解下 Common Lisp 的人。
- 《Lisp Web Tales》
本书介绍了如何使用 Common Lisp 开发 Web 应用,http://lispwebtales.ppenev.com
- 《Lisp for the Web》
仍然是一本介绍 Common Lisp 开发 Web 应用的书,可以在 Leanpub 上免费获得:https://leanpub.com/lispweb
- 《Lisp Hackers》
本书是一本对 Common Lisp 社区知名 Lisp 黑客的采访记录,可以在 Leanpub 上免费获得:https://leanpub.com/lisphackers
- 《Common Lisp Recipes》
Weitz 是 Hunchentoot 等著名 Common Lisp 库的作者,也是本书的作者。这本书中并讲解 Common Lisp 基础知识,而是偏向实践。
- 《The Common Lisp Cookbook》
https://lispcookbook.github.io/cl-cookbook/
- 《On Lisp》
中文版由田春翻译并修正,点击[这里](http://sourceforge.net/projects/onlisp-cn/)下载。这是 Paul Graham 所著的第二本 Common Lisp 书籍,是 Lisp 的进阶级书籍,详细介绍了 Lisp 独有的宏。
- 《Let Over Lambda》
作者 Doug Hoyte 在这本书中深入讲解了宏。
中文版:https://oneforalone.github.io/lol-zh/
- 《The Art of the Metaobject Protocol》
简称 AMOP,专门讲解元对象协议的书。
建议阅读路线:
1、《Common Lisp: A Gentle Introduction to Symbolic Computation Practical Common Lisp》,掌握最基础的 Common Lisp 开发。
2、《ANSI Common Lisp》和《实用 Common Lisp 编程》,两本均有中文版的。
3、《Paradigms of Artificial Intelligence Programming Common Lisp Recipes》
4、深入学习宏:《On Lisp》、《Let Over Lambda》
2. 其他资源
- Awesome Common Lisp:https://github.com/CodyReichert/awesome-cl
- Awesome Lisp Company:列举了使用 Lisp 语言的公司,https://github.com/azzamsa/awesome-lisp-companies
- Awesome Common Lisp Application Software:列举了使用 Common Lisp 开发的软件,https://github.com/azzamsa/awesome-cl-software
- Common Lisp Style Guide:https://lisp-lang.org/style-guide/
- Common Lisp HyperSpec(CLHS),https://www.lispworks.com/documentation/HyperSpec/Front/
- CL CommunitySpec(CLCS),https://cl-community-spec.github.io/pages/index.html
- Common Lisp Docs,https://lisp-docs.github.io/