实用Common Lisp编程
15推荐 收藏
22.3K阅读
图灵程序设计丛书

实用Common Lisp编程

Peter Seibel (作者) 田春 (译者)
这是一本不同寻常的Common Lisp入门书。本书首先从作者的学习经过及语言历史出发,随后用21个章节讲述了各种基础知识,主要包括:REPL 及Common Lisp 的各种实现、S- 表达式、函数与变量、标准宏与自定义宏、数字与字符以及字符串、集合与向量、列表处理、文件与文件I/O 处理、类、FORMAT格式、符号与包,等等。而接下来的9 个章节则翔实地介绍了几个有代表性的实例,其中包含如何构建垃圾过滤器、解析二进制文件、构建ID3 解析器,以及如何编写一个完整的MP3 Web 应用程序等内容。最后还对一些未介绍内容加以延伸。
本书内容适合Common Lisp 初学者及对之感兴趣的相关人士。

收藏本书能做什么?

有情况的时候会收到通知,比如电子书发布等。

纸质书
¥89.00

出版信息

  • 书  名实用Common Lisp编程
  • 系列书名图灵程序设计丛书
  • 执行编辑关于本书的内容有任何问题,请联系 傅志红
  • 出版日期2011-10-10
  • 书  号978-7-115-26374-2
  • 定  价89.00 元
  • 页  数436
  • 开  本16开
  • 出版状态终止销售
  • 原书名Practical Common Lisp
  • 原书号978-1590592397

同系列书

  • HTTP权威指南

    David Gourley   Brian Totty   Marjorie Sayer   Sailu Reddy   Anshu Aggarwal   陈涓   赵振平   译

    本书是HTTP及其相关核心Web技术方面的权威著作,主要介绍了Web应用程序是如何工作的,核心的因特网协议如何...

  • JavaScript高级程序设计(第3版)

    Nicholas C.Zakas   李松峰   曹力   译

    本书是JavaScript超级畅销书的新版。ECMAScript 5 和HTML5在标准之争中双双胜出,使大量...

  • 计算机科学的基础

    Al Aho   Jeff Ullman   傅尔也   译

    本书全面而详细地阐述了计算机科学的理论基础,从抽象概念的机械化到各种数据模型的建立,用算法、数据抽象等核心思想...

  • Java技术手册(第6版)

    Benjamin J Evans   David Flanagan   安道   译

    通过学习本书,你将能够: 掌握最新的语言细节,包括Java 8的变化 使用基本的Java句法学习面向对...

  • 机器学习实战

    Peter Harrington   李锐   李鹏   曲亚东   王斌   译

    机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或...

本书特色

第16届Jolt生产效率奖图书
了解黑客们青睐的编程语言
带你进入Lisp的精彩世界

目录

第1 章 绪言:为什么是Lisp  1

1.1 为什么是Lisp  2

1.2 Lisp 的诞生  4

1.3 本书面向的读者  6

第2 章 周而复始:REPL 简介  8

2.1 选择一个Lisp 实现  8

2.2 安装和运行Lisp in a Box   10

2.3 放开思想:交互式编程   10

2.4 体验REPL  11

2.5 Lisp 风格的“Hello, World”    12

2.6 保存工作成果  13

第3 章 实践:简单的数据库  17

3.1 CD 和记录  17

3.2 录入CD  18

3.3 查看数据库的内容  19

3.4 改进用户交互  21

3.5 保存和加载数据库   23

3.6 查询数据库  24

3.7 更新已有的记录——WHERE 再战江湖  28

3.8 消除重复,获益良多   29

3.9 总结  33

第4 章 语法和语义  34

4.1 括号里都可以有什么  34

4.2 打开黑箱  34

4.3 S-表达式  36

4.4 作为Lisp 形式的S-表达式   38

4.5 函数调用  39

4.6 特殊操作符  39

4.7 宏  41

4.8 真、假和等价  42

4.9 格式化Lisp 代码   43

第5 章 函数  46

5.1 定义新函数   46

5.2 函数形参列表   47

5.3 可选形参  48

5.4 剩余形参  49

5.5 关键字形参   50

5.6 混合不同的形参类型  51

5.7 函数返回值  52

5.8 作为数据的函数——高阶函数   53

5.9 匿名函数   55

第6 章 变量   57

6.1 变量的基础知识   57

6.2 词法变量和闭包  60

6.3 动态变量   61

6.4 常量  65

6.5 赋值  65

6.6 广义赋值  66

6.7 其他修改位置的方式  67

第7 章 宏:标准控制构造  69

7.1 WHEN 和UNLESS   70

7.2 COND   71

7.3 AND、OR 和NOT    72

7.4 循环   72

7.5 DOLIST 和DOTIMES    73

7.6 DO    74

7.7 强大的LOOP   76

第8 章 如何自定义宏   78

8.1 Mac 的故事:只是一个故事  78

8.2 宏展开期和运行期  79

8.3 DEFMACRO   80

8.4 示例宏:do-primes   81

8.5 宏形参   82

8.6 生成展开式  83

8.7 堵住漏洞  84

8.8 用于编写宏的宏  88

8.9 超越简单宏  90

第9 章 实践:建立单元测试框架  91

9.1 两个最初的尝试  91

9.2 重构  92

9.3 修复返回值  94

9.4 更好的结果输出  95

9.5 抽象诞生  97

9.6 测试层次体系  97

9.7 总结  99

第10 章 数字、字符和字符串  101

10.1 数字  101

10.2 字面数值  102

10.3 初等数学  104

10.4 数值比较  106

10.5 高等数学  107

10.6 字符  107

10.7 字符比较  107

10.8 字符串  108

10.9 字符串比较  109

第11 章 集合  111

11.1 向量  111

11.2 向量的子类型  113

11.3 作为序列的向量  114

11.4 序列迭代函数  114

11.5 高阶函数变体  116

11.6 整个序列上的操作  117

11.7 排序与合并  118

11.8 子序列操作  118

11.9 序列谓词  119

11.10 序列映射函数  120

11.11 哈希表  120

11.12 哈希表迭代  122

第12 章 LISP 名字的由来:列表处理  123

12.1 “没有列表”  123

12.2 函数式编程和列表  126

12.3 “破坏性”操作  127

12.4 组合回收性函数和共享结构  129

12.5 列表处理函数  131

12.6 映射  132

12.7 其他结构  133

第13 章 超越列表:点对单元的其他用法  134

13.1 树  134

13.2 集合  136

13.3 查询表:alist 和plist  137

13.4 DESTRUCTURING-BIND   141

第14 章 文件和文件I/O   143

14.1 读取文件数据  143

14.2 读取二进制数据  145

14.3 批量读取  145

14.4 文件输出  145

14.5 关闭文件  146

14.6 文件名  147

14.7 路径名如何表示文件名  149

14.8 构造新路径名  150

14.9 目录名的两种表示方法  152

14.10 与文件系统交互  153

14.11 其他I/O 类型  154

第15 章 实践:可移植路径名库  157

15.1 API  157

15.2 *FEATURES*和读取期条件化  157

15.3 列目录  159

15.4 测试文件的存在  162

15.5 遍历目录树  164

第16 章 重新审视面向对象:广义函数  165

16.1 广义函数和类  166

16.2 广义函数和方法  167

16.3 DEFGENERIC  168

16.4 DEFMETHOD   169

16.5 方法组合  171

16.6 标准方法组合  172

16.7 其他方法组合  173

16.8 多重方法  174

16.9 未完待续  176

第17 章 重新审视面向对象:类  177

17.1 DEFCLASS  177

17.2 槽描述符  178

17.3 对象初始化  179

17.4 访问函数  182

17.5 WITH-SLOTS 和WITHACCESSORS  185

17.6 分配在类上的槽  186

17.7 槽和继承  187

17.8 多重继承  188

17.9 好的面向对象设计  190

第18 章 一些FORMAT 秘诀  191

18.1 FORMAT 函数  192

18.2 FORMAT 指令  193

18.3 基本格式化  194

18.4 字符和整数指令  194

18.5 浮点指令  196

18.6 英语指令  197

18.7 条件格式化  198

18.8 迭代  199

18.9 跳,跳,跳  201

18.10 还有更多  202

第19 章 超越异常处理:状况和再启动  203

19.1 Lisp 的处理方式  204

19.2 状况  205

19.3 状况处理器  205

19.4 再启动  207

19.5 提供多个再启动  210

19.6 状况的其他用法  211

第20 章 特殊操作符  213

20.1 控制求值  213

20.2 维护词法环境   213

20.3 局部控制流   216

20.4 从栈上回退  219

20.5 多值   223

20.6 EVAL-WHEN  224

20.7 其他特殊操作符   227

第21 章 编写大型程序:包和符号   228

21.1 读取器是如何使用包的  228

21.2 包和符号相关的术语   230

21.3 三个标准包  230

21.4 定义你自己的包  232

21.5 打包可重用的库  234

21.6 导入单独的名字  235

21.7 打包技巧   236

21.8 包的各种疑难杂症   237

第22 章 高阶LOOP  240

22.1 LOOP 的组成部分   240

22.2 迭代控制  241

22.3 计数型循环  241

22.4 循环集合和包  242

22.5 等价?然后迭代  243

22.6 局部变量  244

22.7 解构变量   245

22.8 值汇聚  245

22.9 无条件执行  247

22.10 条件执行  247

22.11 设置和拆除  248

22.12 终止测试  250

22.13 小结  251

第23 章 实践:垃圾邮件过滤器   252

23.1 垃圾邮件过滤器的核心  252

23.2 训练过滤器  255

23.3 按单词来统计  257

23.4 合并概率  259

23.5 反向卡方分布函数  261

23.6 训练过滤器  262

23.7 测试过滤器  263

23.8 一组工具函数  265

23.9 分析结果  266

23.10 接下来的工作  268

第24 章 实践:解析二进制文件  269

24.1 二进制文件   269

24.2 二进制格式基础  270

24.3 二进制文件中的字符串  271

24.4 复合结构  273

24.5 设计宏  274

24.6 把梦想变成现实  275

24.7 读取二进制对象  277

24.8 写二进制对象  279

24.9 添加继承和标记的结构  280

24.10 跟踪继承的槽  281

24.11 带有标记的结构  284

24.12 基本二进制类型  285

24.13 当前对象栈  288

第25 章 实践:ID3 解析器  290

25.1 ID3v2 标签的结构  291

25.2 定义包  292

25.3 整数类型  292

25.4 字符串类型  294

25.5 ID3 标签头  297

25.6 ID3 帧  298

25.7 检测标签补白  300

25.8 支持ID3 的多个版本  301

25.9 版本化的帧基础类  303

25.10 版本化的具体帧类  304

25.11 你实际需要哪些帧  305

25.12 文本信息帧  307

25.13 评论帧    309

25.14 从ID3 标签中解出信息  310

第26 章 实践:用AllegroServe 进行Web 编程  315

26.1 30 秒介绍服务器端Web 编程  315

26.2 AllegroServe   317

26.3 用AllegroServe 生成动态内容  320

26.4 生成HTML   321

26.5 HTML 宏  324

26.6 查询参数  325

26.7 cookie   327

26.8 小型应用框架  329

26.9 上述框架的实现  330

第27 章 实践:MP3 数据库  334

27.1 数据库  334

27.2 定义模式  336

27.3 插入值  338

27.4 查询数据库  340

27.5 匹配函数  342

27.6 获取结果  344

27.7 其他数据库操作  346

第28 章 实践:Shoutcast 服务器  348

28.1 Shoutcast 协议  348

28.2 歌曲源  349

28.3 实现Shoutcast   351

第29 章 实践:MP3 浏览器  357

29.1 播放列表  357

29.2 作为歌曲源的播放列表  359

29.3 操作播放列表  362

29.4 查询参数类型  365

29.5 样板HTML   367

29.6 浏览页  368

29.7 播放列表  371

29.8 查找播放列表  373

29.9 运行应用程序  374

第30 章 实践:HTML 生成库,解释器部分  375

30.1 设计一个领域相关语言  375

30.2 FOO 语言  376

30.3 字符转义  379

30.4 缩进打印器  380

30.5 HTML 处理器接口  381

30.6 美化打印器后台  382

30.7 基本求值规则  385

30.8 下一步是什么  389

第31 章 实践:HTML 生成库,编译器部分  390

31.1 编译器  390

31.2 FOO 特殊操作符  395

31.3 FOO 宏  399

31.4 公共API  401

31.5 结束语   403

第32 章 结论:下一步是什么  404

32.1 查找Lisp 库  404

32.2 与其他语言接口  406

32.3 让它工作,让它正确,让它更快   406

32.4 交付应用程序   413

32.5 何去何从   415




相关文章

  • 出版圈郭志敏 6推荐

    Lisp的诞生

      Common Lisp是1956年John McCarthy发明的Lisp语言的现代版本。Lisp在1956年被设计用于“符号数据处理” ,而Lisp这个名字本身就来源于其最擅长的工作:列表处理(LISt Processing)。从那时起,Lisp得到了长足的发展:Comm…...

  • 武卫东 2推荐

    Practical Common Lisp中文版征集书名

    **1) Common Lisp实战** 优点:这个名字与图灵出版的其他“实战”系列可以呼应,与Practical也比较接近。 缺点:“实战”给人较深入的印象,而本书中基础内容占的比例也不小。定位不严格契 合。 **2) Common Lisp入门与实战** ...

  • 傅志红 4推荐

    《实用Common Lisp编程》作者Peter Seibel答读者问

    本文摘自Peter Seibel的个人wiki。原文链接 我是一个程序员,一个作家,现在成了一个编辑、出版人。我写了一本关于Common Lisp的《实用Common Lisp编程》(Practical Common Lisp),一本访谈著名程序员的《编程人生》(Coders…...

  • 武卫东 2推荐

    (转)Lisp语音发明者、“人工智能之父” John McCarthy与世长辞

    ![enter image description here][1] 此文转自36氪。 Lisp语音发明者、“人工智能之父”John MacCarthy今天与世长辞。 以下是关于这位计算机大师的简介: 1927年生于美国波士顿 1948年,加州理工,数学学士 1951…...

  • 出版圈郭志敏 2推荐

    实用Common Lisp编程——函数

      有了语法和语义规则以后,所有Lisp程序的三个最基本组成部分就是函数、变量和宏。在第3章里构建数据库时,这三个组件已经全部用到了,但是我没有详细提及它们是如何工作的,如何更好使用它们。接下来的几章将专门讲解这三个主题,先从函数开始。就跟其他语言里一样,函数提供了用于抽象和功…...

  • 李松峰 2推荐

    [转]水木社区函数式编程语言版版聚手记

    发信人: Dieken (风催草低 - 明月何尝不照人), 信区: FuncProgram 标题: 版聚归来 发信站: 水木社区 (Sat Oct 16 18:28:32 2010), 站内 出 处:[http://www.newsmth.net/bbscon.php?bid=…...

  • 旸谷 15推荐

    田春:走在Lisp的岔路上(图灵访谈)

    图灵访谈之三:专访田春 10月23日,图灵社区就Lisp编程语言和《实用 Common Lisp编程》一书,采访了译者田春,以下为访谈内容: 人物简介:[田春][1] Common Lisp 程序员, 毽球运动员, 跆拳道 2 级 网名“冰河”,Glority Sof…...

  • 邓国平 5推荐

    Lisp语言简介

    我知道这门语言是因为阅读了《黑客与画家》这本文集,之后在网络上进行了相关搜索。 LISP(全名LISt Processor,即列表处理语言),由约翰·麦卡锡在1960年左右创造的一种基于λ演算的函数式编程语言。(引用自wiki百科) Lisp是函数式的编程语言,但是这门语言…...

  • 谢工在GitChat 10推荐

    与译者田春的对话及一点思考

    在QCON大会期间,我们在杭州约请了一批作译者交流,其中对《实用Common Lisp编程》译者田春进行了面对面的采访和交流。 本来我们安排采访内容的包括:对于Lisp这样的中古语言的看法;对读者如何学习编程语言提供一些建议;对Lisp的实际应用和未来前景;除了图书以外,还有…...

  • Liszt 推荐

    简评《实用Common Lisp编程》

    Lisp是博大精深的,Lisp是简单实用的。你可以在其他语言里找到LISP语言的影子,Paul Graham也说过"Java、Perl、Python、Ruby。你会发现,排在越后面的语言,越像Lisp"。LISP有很多优点值得我们程序员去学习,而《实用Com…...

  • cpplover 1推荐

    《实用Common Lisp编程》书评

    JOLT大奖的图书,质量毋庸置疑。借着《黑客与画家》的势头,推出这本LISP书,满足许多被吊起好奇心的程序们。这是一本为每一个想入门Common Lisp的程序员量身定做的。书中深入分析了大量Common Lisp语言的常用特性,展示了一种与常用程序设计语言截然不同的变成的思路…...

  • Locke 2推荐

    让编程的热情感染你--《实用Common Lisp编程》书评

    这本书英文版2010年就有了,说下我看英文版的感受,我最大的感触就是它不是一本教科书,它不是一本教程,它也不是一本参考书。它是一位热爱common lisp的程序员给我们带来的编程之旅。 在第一章,作者写道,“This book is for you if you're…...

  • 空军 11推荐

    《实用Common Lisp编程》读书小记

    前几天开始读 Peter Seibel 的[《实用Common Lisp编程》][1],这是一本极佳的 Lisp 语言入门教程,读了几页就被深深吸引了,尝到学习新语言的乐趣。译者[田春][2]是一位经验丰富的 Common Lisp 程序员,翻译非常到位,深得原著精髓。本书的 …...

  • 空军 2推荐

    小议 Common Lisp 的名字

    不要误会,标题中的名字不是指 Common Lisp 这个名字本身,而是指 Common Lisp 中所使用的名字,也就是符号,或者是其他程序设计语言中所说的标识符。 Common Lisp 的名字有两个不同于其他程序设计语言的特点:一是几乎任何字符都可以出现在一个名字里(空…...

  • 嗯,我要拿积分换这本书:D
    veldts  发表于 2011-09-26 17:39:12
    推荐
  • 什么时候出电子版呀,虽然手里有扫描版的pdf
    imtinge  发表于 2014-06-26 20:13:31
    推荐
    • 这本书外方没有授权电子版。

      傅志红  发表于 2014-06-27 09:13:13
  • 好书,要是有电子版,果断入手
    lokizone  发表于 2014-10-15 13:32:28
    推荐
    • 外方没有授权电子版:(

      傅志红  发表于 2014-10-15 13:37:33
  • 看来有正版纸质版的我,是幸福的。。。
    不过,确实想要电子版珍藏。。。
    dna  发表于 2015-08-23 09:50:51
    推荐
  • 看了这个价格,我hold不住了。。。。。。
    流星在线  发表于 2011-09-27 08:56:56
    推荐
    • 估计图灵也没底能卖多少本,干脆定高点

      veldts  发表于 2011-09-27 12:05:33
  • 不知道什么时候知道了lisp,这个神一样的编程语言。后来知道了伞哥,这个特立独行的男人。这个语言的特性也很多,是现代流行语言Python/Ruby以及不流行语言Smalltlak的源头,慢慢的感觉到在中国目前这个语言的哲学性比实用性大,而可编程的编程语言更是让资深程序员活得更好。对于这样一门语言,国外的资料还是很多的,从http://www.verycd.com/topics/2805844/可以看出(版权....版权......)。而国内的资料还是相对比较少的,我在国家图书馆查到了几本lisp书籍,大家可以看一下,http://opac.nlc.gov.cn/F/A9B9L5QBTRQSX6QU6IGK7Q91HR1DBVF35TADAH3YYCUNYVDVHM-46327?func=full-set-set&set_number=092158&set_entry=000023&format=999
    http://opac.nlc.gov.cn/F/A9B9L5QBTRQSX6QU6IGK7Q91HR1DBVF35TADAH3YYCUNYVDVHM-46359?func=full-set-set&set_number=092158&set_entry=000028&format=999
    http://opac.nlc.gov.cn/F/A9B9L5QBTRQSX6QU6IGK7Q91HR1DBVF35TADAH3YYCUNYVDVHM-46365?func=full-set-set&set_number=092158&set_entry=000029&format=999
    http://opac.nlc.gov.cn/F/A9B9L5QBTRQSX6QU6IGK7Q91HR1DBVF35TADAH3YYCUNYVDVHM-46371?func=full-set-set&set_number=092158&set_entry=000030&format=999
    http://opac.nlc.gov.cn/F/A9B9L5QBTRQSX6QU6IGK7Q91HR1DBVF35TADAH3YYCUNYVDVHM-32378?func=full-set-set&set_number=092158&set_entry=000034&format=999
    http://opac.nlc.gov.cn/F/A9B9L5QBTRQSX6QU6IGK7Q91HR1DBVF35TADAH3YYCUNYVDVHM-32370?func=full-set-set&set_number=092158&set_entry=000032&format=999
    http://opac.nlc.gov.cn/F/A9B9L5QBTRQSX6QU6IGK7Q91HR1DBVF35TADAH3YYCUNYVDVHM-32384?func=full-set-set&set_number=092158&set_entry=000035&format=999
    http://opac.nlc.gov.cn/F/A9B9L5QBTRQSX6QU6IGK7Q91HR1DBVF35TADAH3YYCUNYVDVHM-32390?func=full-set-set&set_number=092158&set_entry=000036&format=999
    http://opac.nlc.gov.cn/F/A9B9L5QBTRQSX6QU6IGK7Q91HR1DBVF35TADAH3YYCUNYVDVHM-32396?func=full-set-set&set_number=092158&set_entry=000037&format=999
    http://opac.nlc.gov.cn/F/A9B9L5QBTRQSX6QU6IGK7Q91HR1DBVF35TADAH3YYCUNYVDVHM-32402?func=full-set-set&set_number=092158&set_entry=000038&format=999

    (貌似也不少,看来前人也有不少研究的。)
    这些书没有看过,具体内容不知道怎么样。但凡问起来学lisp的入门书籍,大概就是Common.Lisp.The.Language.2nd.Edition以及这本实用Common Lisp编程(也有推荐Land of Lisp的)。介于伞哥的影响力,此书的出版标志着国内又一轮小众的lisp学习狂潮。
    土豆  发表于 2011-10-14 10:35:31
    推荐
    • 本来想再编辑下写点更多的,结果没有编辑功能。

      土豆  发表于 2011-10-14 10:42:04
  • 请问该书为什么停止出版了??不会再增印了吗??
    Egoist401  发表于 2014-10-01 13:24:41
    推荐
    • 想找LISP的入门书太难了,网上基本没有,果然是太冷门了吗···

      Egoist401  发表于 2014-10-01 13:25:35
    • 是的,真正会Lisp或学习的人并不多,至少从书的销量上来看是如此,这也导致了书无法再继续增印。

      傅志红  发表于 2014-10-08 08:01:04
  • 等待出版中,活动没赶上啊。
    白龙  发表于 2011-09-06 19:55:59
    推荐
  • 这书还会不会重印啊,或者出一本《ansi common lisp》...
    ifplusor  发表于 2015-09-30 21:18:38
    推荐
  • 才发现,这本书学校图书馆都没有。。。。。
    蒙恬  发表于 2016-03-08 10:21:28
    推荐
  • 要是能重印下就好了,伞哥现在去意大利读书了
    qlhai  发表于 2017-04-27 10:39:35
    推荐
  • 现在不能买了吗,只能看伞哥的开源版本
    jakobliao  发表于 2017-09-21 12:37:02
    推荐
  • 这书还会在出版么……………………不出版就支持盗版书了……………………我也很绝望鸭
    460896339  发表于 2018-11-06 15:29:51
    推荐
  • 我也好想要电子书啊,能申请下电子书版权不?英文版都有电子书的
    陆志广  发表于 2019-05-27 21:57:14
    推荐
  • 请问这本书的word版文件还在出版社吗?还是已经销毁或者丢失了?
    陆志广  发表于 2019-05-27 22:04:40
    推荐