少量污渍或磨损
¥ 24.07 八品
库存2件
作者[美]peter seibel 著;田春 译
出版社人民邮电出版社
出版时间2011-10
版次1
装帧平装
货号1739546749251944449
上书时间2023-12-26
第1章 绪言:为什么是Lisp
1.1 为什么是Lisp
1.2 Lisp 的诞生
1.3 本书面向的读者
第2章 周而复始:REPL 简介
2.1 选择一个Lisp 实现
2.2 安装和运行Lisp in a Box
2.3 放开思想:交互式编程
2.4 体验REPL
2.5 Lisp 风格的“Hello, World”
2.6 保存工作成果
第3章 实践:简单的数据库
3.1 CD 和记录
3.2 录入CD
3.3 查看数据库的内容
3.4 改进用户交互
3.5 保存和加载数据库
3.6 查询数据库
3.7 更新已有的记录——WHERE 再战江湖
3.8 消除重复,获益良多
3.9 总结
第4章 语法和语义
4.1 括号里都可以有什么
4.2 打开黑箱
4.3 S-表达式
4.4 作为Lisp 形式的S-表达式
4.5 函数调用
4.6 特殊操作符
4.7 宏
4.8 真、假和等价
4.9 格式化Lisp 代码
第5章 函数
5.1 定义新函数
5.2 函数形参列表
5.3 可选形参
5.4 剩余形参
5.5 关键字形参
5.6 混合不同的形参类型
5.7 函数返回值
5.8 作为数据的函数——高阶函数
5.9 匿名函数
第6章 变量
6.1 变量的基础知识
6.2 词法变量和闭包
6.3 动态变量
6.4 常量
6.5 赋值
6.6 广义赋值
6.7 其他修改位置的方式
第7章 宏:标准控制构造
7.1 WHEN 和UNLESS
7.2 COND
7.3 AND、OR 和NOT
7.4 循环
7.5 DOLIST 和DOTIMES
7.6 DO
7.7 强大的LOOP
第8章 如何自定义宏
8.1 Mac 的故事:只是一个故事
8.2 宏展开期和运行期
8.3 DEFMACRO
8.4 示例宏:do-primes
8.5 宏形参
8.6 生成展开式
8.7 堵住漏洞
8.8 用于编写宏的宏
8.9 超越简单宏
第9章 实践:建立单元测试框架
9.1 两个最初的尝试
9.2 重构
9.3 修复返回值
9.4 更好的结果输出
9.5 抽象诞生
9.6 测试层次体系
9.7 总结
第10章 数字、字符和字符串
10.1 数字
10.2 字面数值
10.3 初等数学
10.4 数值比较
10.5 高等数学
10.6 字符
10.7 字符比较
10.8 字符串
10.9 字符串比较
第11章 集合
11.1 向量
11.2 向量的子类型
11.3 作为序列的向量
11.4 序列迭代函数
11.5 高阶函数变体
11.6 整个序列上的操作
11.7 排序与合并
11.8 子序列操作
11.9 序列谓词
11.10 序列映射函数
11.11 哈希表
11.12 哈希表迭代
第12章 LISP 名字的由来:列表处理
12.1 “没有列表”
12.2 函数式编程和列表
12.3 “破坏性”操作
12.4 组合回收性函数和共享结构
12.5 列表处理函数
12.6 映射
12.7 其他结构
第13章 超越列表:点对单元的其他用法
13.1 树
13.2 集合
13.3 查询表:alist 和plist
13.4 DESTRUCTURING-BIND
第14章 文件和文件I/O
14.1 读取文件数据
14.2 读取二进制数据
14.3 批量读取
14.4 文件输出
14.5 关闭文件
14.6 文件名
14.7 路径名如何表示文件名
14.8 构造新路径名
14.9 目录名的两种表示方法
14.10 与文件系统交互
14.11 其他I/O 类型
第15章 实践:可移植路径名库
15.1 API
15.2 *FEATURES*和读取期条件化
15.3 列目录
15.4 测试文件的存在
15.5 遍历目录树
第16章 重新审视面向对象:广义函数
16.1 广义函数和类
16.2 广义函数和方法
16.3 DEFGENERIC
16.4 DEFMETHOD
16.5 方法组合
16.6 标准方法组合
16.7 其他方法组合
16.8 多重方法
16.9 未完待续
第17章 重新审视面向对象:类
17.1 DEFCLASS
17.2 槽描述符
17.3 对象初始化
17.4 访问函数
17.5 WITH-SLOTS 和WITHACCESSORS
17.6 分配在类上的槽
17.7 槽和继承
17.8 多重继承
17.9 好的面向对象设计
第18章 一些FORMAT 秘诀
18.1 FORMAT 函数
18.2 FORMAT 指令
18.3 基本格式化
18.4 字符和整数指令
18.5 浮点指令
18.6 英语指令
18.7 条件格式化
18.8 迭代
18.9 跳,跳,跳
18.10 还有更多
第19章 超越异常处理:状况和再启动
19.1 Lisp 的处理方式
19.2 状况
19.3 状况处理器
19.4 再启动
19.5 提供多个再启动
19.6 状况的其他用法
第20章 特殊操作符
20.1 控制求值
20.2 维护词法环境
20.3 局部控制流
20.4 从栈上回退
20.5 多值
20.6 EVAL-WHEN
20.7 其他特殊操作符
第21章 编写大型程序:包和符号
21.1 读取器是如何使用包的
21.2 包和符号相关的术语
21.3 三个标准包
21.4 定义你自己的包
21.5 打包可重用的库
21.6 导入单独的名字
21.7 打包技巧
21.8 包的各种疑难杂症
第22章 高阶LOOP
22.1 LOOP 的组成部分
22.2 迭代控制
22.3 计数型循环
22.4 循环集合和包
22.5 等价·然后迭代
22.6 局部变量
22.7 解构变量
22.8 值汇聚
22.9 无条件执行
22.10 条件执行
22.11 设置和拆除
22.12 终止测试
22.13 小结
第23章 实践:垃圾邮件过滤器
23.1 垃圾邮件过滤器的核心
23.2 训练过滤器
23.3 按单词来统计
23.4 合并概率
23.5 反向卡方分布函数
23.6 训练过滤器
23.7 测试过滤器
23.8 一组工具函数
23.9 分析结果
23.10 接下来的工作
第24章 实践:解析二进制文件
24.1 二进制文件
24.2 二进制格式基础
24.3 二进制文件中的字符串
24.4 复合结构
24.5 设计宏
24.6 把梦想变成现实
24.7 读取二进制对象
24.8 写二进制对象
24.9 添加继承和标记的结构
24.10 跟踪继承的槽
24.11 带有标记的结构
24.12 基本二进制类型
24.13 当前对象栈
第25章 实践:ID3 解析器
25.1 ID3v2 标签的结构
25.2 定义包
25.3 整数类型
25.4 字符串类型
25.5 ID3 标签头
25.6 ID3 帧
25.7 检测标签补白
25.8 支持ID3 的多个版本
25.9 版本化的帧基础类
25.10 版本化的具体帧类
25.11 你实际需要哪些帧
25.12 文本信息帧
25.13 评论帧
25.14 从ID3 标签中解出信息
第26章 实践:用AllegroServe 进行Web 编程
26.1 30 秒介绍服务器端Web 编程
26.2 AllegroServe
26.3 用AllegroServe 生成动态内容
26.4 生成HTML
26.5 HTML 宏
26.6 查询参数
26.7 cookie
26.8 小型应用框架
26.9 上述框架的实现
第27章 实践:MP3 数据库
27.1 数据库
27.2 定义模式
27.3 插入值
27.4 查询数据库
27.5 匹配函数
27.6 获取结果
27.7 其他数据库操作
第28章 实践:Shoutcast 服务器
28.1 Shoutcast 协议
28.2 歌曲源
28.3 实现Shoutcast
第29章 实践:MP3 浏览器
29.1 播放列表
29.2 作为歌曲源的播放列表
29.3 操作播放列表
29.4 查询参数类型
29.5 样板HTML
29.6 浏览页
29.7 播放列表
29.8 查找播放列表
29.9 运行应用程序
第30章 实践:HTML 生成库,解释器部分
30.1 设计一个领域相关语言
30.2 FOO 语言
30.3 字符转义
30.4 缩进打印器
30.5 HTML 处理器接口
30.6 美化打印器后台
30.7 基本求值规则
30.8 下一步是什么
第31章 实践:HTML 生成库,编译器部分
31.1 编译器
31.2 FOO 特殊操作符
31.3 FOO 宏
31.4 公共API
31.5 结束语
第32章 结论:下一步是什么
32.1 查找Lisp 库
32.2 与其他语言接口
32.3 让它工作,让它正确,让它更快
32.4 交付应用程序
32.5 何去何从
— 没有更多了 —
以下为对购买帮助不大的评价