由塞贝尔编著的《实用Common Lisp编程》是一本不同寻常的Common Lisp入门书。《实用Common Lisp编程》首先从作者的学习经过及语言历史出发,随后用21个章节讲述了各种基础知识,主要包括:REPL及Common Lisp的各种实现、S-表达式、函数与变量、标准宏与自定义宏、数字与字符以及字符串、集合与向量、列表处理、文件与文件I/O处理、类、FORMAT格式、符号与包,等等。而接下来的9个章节则翔实地介绍了几个有代表性的实例,其中包含如何构建垃圾过滤器、解析二进制文件、构建ID3解析器,以及如何编写一个完整的MP3 Web应用程序等内容。最后还对一些未介绍内容加以延伸。
《实用Common Lisp编程》内容适合Common Lisp初学者及对之感兴趣的相关人士。
第1 章 绪言:为什么是Lisp1
1.1 为什么是Lisp2
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 体验REPL11
2.5 Lisp 风格的“Hello, World” 12
2.6 保存工作成果13
第3 章 实践:简单的数据库17
3.1 CD 和记录17
3.2 录入CD18
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 和plist137
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 API157
15.2 *FEATURES*和读取期条件化157
15.3 列目录159
15.4 测试文件的存在162
15.5 遍历目录树164
第16 章 重新审视面向对象:广义函数165
16.1 广义函数和类166
16.2 广义函数和方法167
16.3 DEFGENERIC168
16.4 DEFMETHOD 169
16.5 方法组合171
16.6 标准方法组合172
16.7 其他方法组合173
16.8 多重方法174
16.9 未完待续176
第17 章 重新审视面向对象:类177
17.1 DEFCLASS177
17.2 槽描述符178
17.3 对象初始化179
17.4 访问函数182
17.5 WITH-SLOTS 和WITHACCESSORS185
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-WHEN224
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 章 高阶LOOP240
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 公共API401
31.5 结束语 403
第32 章 结论:下一步是什么404
32.1 查找Lisp 库404
32.2 与其他语言接口406
32.3 让它工作,让它正确,让它更快 406
32.4 交付应用程序 413
32.5 何去何从 415
《Photoshop CC商品照片精修与网店美工实战手册》内容简介:《Photoshop CC商品照片精修与网店美工实战手册》结构清晰、内容翔实、
电脑维修与技巧888问 内容简介 电脑已经成为人们生活中不可缺少的一部分。虽然大家都在使用电脑,但不是每个人都能够使用得得心应手,当电脑出故障时,许多人就束手无...
深度学习与人体姿态动作识别/关晨至 内容简介 本书主要阐述了深度学习下人体姿态动作识别的相关技术和方法。全书共六章,章介绍了深度学习的发展历史;第二章介绍了各种...
WPF领域圣经级著作目录 第一部分 背景第1章 为什么创造WPF第2章 XAML揭秘第3章 WPF的重要新概念第二部分 构建WPF应用程序第
《Web安全防护指南(基础篇)》内容简介:Web安全与防护技术是当前安全界关注的热点,本书尝试针对各类漏洞的攻防技术进行体系化整
《没什么难的HTML5完全自学手册》内容简介:本书作为HTML5网页开发语言的教程,系统地介绍了HTML5的相关知识点。全书共12章,从HTM
《一念放下,自在洒脱:李叔同的禅悟人生课》内容简介:★人生没有什么放不下 ★弘一法师人生智慧的精粹集锦 ★前半生拿得起,后半
这是一本内容翔实的色彩设计手册,通过讲解色相或搭配图例的基础知识,以及都市中的形象色彩设计,传递给读者一种色彩搭配感觉,
《乾坤衍》内容简介:熊十力哲学三部曲:《新唯识论》《体用论》《乾坤衍》。从中可以清晰看到熊十力思想的出发点和演变轨迹。熊十
本书通过大量的实际开发应用实例阐述Python语言的基础知识,介绍如何使用计算机进行问题求解、结构化编程以及面向对象编程。本书
《高效管理的四个关键环节》内容简介:《高效管理的四个关键环节/盛世新管理书架》编著者王亚锋。《高效管理的四个关键环节/盛世
《坚守坐拥的书城》内容简介:学者不管怎么挣扎,都自有他的“不自由”,那就是无论如何也舍不得离开他的书。可“坐拥书城”也自有
《游踪行旅亦有趣》内容简介:《游踪行旅亦有趣》中的作品有叙事的、抒情的、释理的,文笔手法细腻,结构顺畅,条理清晰,内容丰富
《南京传》内容简介:春归秣陵树,人老建康城。作为一位公认的文章大家,叶兆言对他写了四十年的南京有着独特理解。南京为他提供了
《聪明女人的口才修炼课》内容简介:在人际关系互动频繁的时代,说话技巧变得愈来愈重要。女人想要拥有好人缘,在职场和情场里无往
《结构化写作》内容简介:本书核心内容包括导论、基础篇、方法篇。其中,导论部分主要强调职场写作技能的必要性和重要性,并解释何
jaybryant:横跨两个不同的领域:写作和编程。在过去的20年中,他一直致力于帮助ge(通用电气)、motorola(摩托罗拉)、dell(戴
《全职妈妈指南》内容简介:目前全国至少有9400万城镇全职妈妈,这个数字还会随着二孩家庭的增多而不断变大。虽然全职妈妈对家庭贡
从零开始学习Cocoa的首选图书.涵盖了最新的Mac编程技术高级MacOSX开发者们联手强烈推荐..MacOSX编程图书的标杆AaronHillegass多年
你的人生,只是缺乏設計!每一個生活上的煩惱,都有一種設計上的方法可以解決。讓設計回到日常生活,讓設計幫你製造幸福!設計的