Common Lisp 学习资源

Table of Contents

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://letoverlambda.com/

中文版: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. 其他资源