译者序
推荐序
前 言
致 谢
第1章 自然和设计中的灵活性
1.1 计算体系结构
1.2 灵活的智能组件
1.3 冗余和简并
1.4 探索行为
1.5 灵活性的成本
第2章 领域专用语言
2.1 组合器
2.1.1 函数组合器
2.1.2 组合器和形体构造
2.2 正则表达式
2.2.1 一种正则表达式组合语言
2.2.2 翻译器的实现
2.3 包装器
2.3.1 定制化包装器
2.3.2 实现定制器
2.3.3 适配器
2.4 抽象领域模型
2.4.1 单一化实现
2.4.2 领域模型分解
2.5 小结
第3章 算术主题
3.1 组合算术
3.1.1 一个简单的ODE积分器
3.1.2 调整算术运算符
3.1.3 组合运算
3.1.4 算术函数
3.1.5 组合器问题
3.2 可扩展的通用程序
3.2.1 通用运算
3.2.2 构建取决于顺序
3.2.3 实现通用程序
3.3 示例:自动微分
3.3.1 自动微分的工作原理
3.3.2 n元函数的导数
3.3.3 一些技术细节
3.3.4 微分参数的文字函数
3.4 高效的通用程序
3:4.1 trie
3.4.2 缓存
3.5 高效的用户自定义类型
3.5.1 谓词的类型
3.5.2 谓词之间的关系
3.5.3 谓词调度关键字
3.5.4 示例:冒险游戏
3.6 小结
第4章 模式匹配
4.1 模式
4.2 项重写
4.2.1 代数中的段变量
4.2.2 规则系统的实现
4.2.3 旁白:魔术宏
4.2.4 有向模式调用
4.3 匹配器设计
4.3.1 编译模式
4.3.2 匹配变量限制
4.4 合一匹配
4.4.1 合一的工作原理
4.4.2 应用:类型推断
4.4.3 类型推断的工作原理
4.4.4 添加段变量——一个实验
4.5 图上的模式匹配
4.5.1 将列表表示为图
4.5.2 实现图
4.5.3 图上的匹配
4.5.4 棋盘和可交换图形视图
4.5.5 棋步
4.5.6 实现图形匹配
4.6 小结
第5章 评 估
5.1 通用eval/apply解释器
5.1.1 eval
5.1.2 apply
5.2 具有非严格参数的程序
5.3 编译为可执行程序
5.4 探索行为
5.4.1 amb
5.4.2 实现 amb
5.5 探索潜在连续
5.5.1 作为非本地出口的连续
5.5.2 控制权的非本地转移
5.5.3 从连续到 amb
5.6 能力与责任
第 6章 分 层
6.1 使用分层
6.2 分层的实现
6.2.1 分层数据
6.2.2 分层程序
6.3 分层算法
6.3.1 单位运算
6.4 使用依赖项注释值
6.4.1 支持层
6.4.2 提供正当性
6.5 分层的前景
第7章 传 播
7.1 示例:到恒星的距离
7.2 传播机制
7.2.1 单元
7.2.2 传播器
7.3 多种不同的世界观
7.4 合并值
7.4.1 合并基值
7.4.2 合并支持值
7.4.3 合并值集
7.5 搜索可能的世界
7.5.1 依赖定向回溯
7.5.2 解决组合问题
7.6 传播导致简并
后 记
附录A 支持软件
附录B Scheme编程语言
参考文献
展开