《实用Common Lisp编程》pdf格式下载电子书免费下载 https://u253469.ctfile.com/fs/253469-302448499
内容简介
由塞贝尔编著的《实用Common Lisp编程》是一本不同寻常的Common Lisp入门书。《实用Common Lisp编程》首先从作者的学习经过及语言历史出发,随后用21个章节讲述了各种基础知识,主要包括:REPL及Common Lisp的各种实现、S-表达式、函数与变量、标准宏与自定义宏、数字与字符以及字符串、集合与向量、列表处理、文件与文件I/O处理、类、FORMAT格式、符号与包,等等。而接下来的9个章节则翔实地介绍了几个有代表性的实例,其中包含如何构建垃圾过滤器、解析二进制文件、构建ID3解析器,以及如何编写一个完整的MP3 Web应用程序等内容。最后还对一些未介绍内容加以延伸。
《实用Common Lisp编程》内容适合Common Lisp初学者及对之感兴趣的相关人士。
作者简介
Peter Seibel 从作家演变成程序员,又从程序员演变成作家,其职业生涯可谓一波三折。他在获得英语专业学士学位后做过一段时间的记者工作,后来被Web所吸引。在20世 纪90年代早期,他用Perl建立了Mother Jones杂志和Organic Online网站。他作为WebLogic的早期雇员参与了Java革命,随后又在加州大学伯克利分校教授Java编程。他也是第二代Lisp程序员之 一,并曾经是Symbolics的早期股东。2003年他辞去技术工作,潜心研究Lisp,并凭借本书获得Jolt生产效率大奖。2009年出版了名噪一 时的访谈录《编程人生》(Coders at Work)。
目录
第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
原文地址:https://www.cnblogs.com/zhiyong399/p/9493127.html