全部商品分类

您现在的位置: 全部商品分类 > 电子电脑 > 计算机技术 > 程序与语言

函数程序设计算法/计算机科学丛书

  • 定价: ¥99
  • ISBN:9787111653257
  • 开 本:16开 平装
  •  
  • 折扣:
  • 出版社:机械工业
  • 页数:265页
  • 作者:(美)约翰·戴维·...
  • 立即节省:
  • 2020-05-01 第1版
  • 2020-05-01 第1次印刷
我要买:
点击放图片

导语

  

内容提要

  

    本书用纯函数程序设计语言Scheme的一种变体深入浅出地讲解各类常用的数据结构和算法。第1章介绍了本书使用的基于Scheme的变体语言,第2章和第3章分别介绍了函数程序设计中常用的各类编程模式和数据结构,第4~7章分别介绍了排序、组合构造、图算法和子列表搜索算法等,并对算法的思想和实现进行了详细分析和解释。全书每节都总结了本节涉及的过程并编排了有针对性的习题,以便读者更好地理解和掌握相关内容。
    本书适用于学习函数程序设计和算法设计及相关课程的本科生和研究生,也可供程序员学习函数程序设计时阅读和参考。

目录

出版者的话
译者序
前言
第1章  基本符号
  1.1  简单值
  1.2  标识符和表达式
  1.3  函数和过程
  1.4  算术函数
    1.4.1  加法
    1.4.2  减法
    1.4.3  乘法
    1.4.4  除法
    1.4.5  幂运算
    1.4.6  过程总结
  1.5  过程调用
  1.6  λ表达式
    1.6.1  变元过程
    1.6.2  构建列表
    1.6.3  返回多个值
    1.6.4  没有结果的计算
  1.7  谓词
    1.7.1  分类谓词
    1.7.2  相等谓词
    1.7.3  相等和类型
  1.8  条件类型表达式
    1.8.1  条件表达式
    1.8.2  合取表达式与析取表达式
  1.9  定义
    1.9.1  过程定义
    1.9.2  递归定义
  1.10  局部绑定
    1.10.1  局部过程
    1.10.2  局部递归
    1.10.3  收纳表达式
第2章  工具箱
  2.1  列表映射
  2.2  常量过程
  2.3  过程节选
    2.3.1  invoke过程
    2.3.2  卡瑞化
  2.4  耦合器
    2.4.1  过程复合
    2.4.2  并行应用
    2.4.3  调度
  2.5  适配器
    2.5.1  选择
    2.5.2  重排
    2.5.3  预处理和后处理
  2.6  递归管理器
    2.6.1  recur过程
    2.6.2  递归谓词
    2.6.3  迭代
  2.7  欧几里得算法
  2.8  高阶布尔过程
    2.8.1  布尔值和谓词上的操作
    2.8.2  ^if过程
  2.9  自然数和递归
    2.9.1  数学归纳法
    2.9.2  自然数上的递归
    2.9.3  计数
    2.9.4  有界推广
第3章  数据结构
  3.1  建模
  3.2  空值
  3.3  和类型
    3.3.1  枚举
    3.3.2  可区分并集
    3.3.3  递归类型方程
  3.4  有序对
    3.4.1  命名对
    3.4.2  积类型
    3.4.3  再议可区分并集
    3.4.4  重新实现自然数
  3.5  盒
  3.6  列表
    3.6.1  选择过程
    3.6.2  同构列表
    3.6.3  列表的递归过程
    3.6.4  列表归纳原理
    3.6.5  列表递归管理
    3.6.6  展开
  3.7  列表算法
    3.7.1  元数扩展
    3.7.2  筛选和划分
    3.7.3  子列表
    3.7.4  位置选择
    3.7.5  列表元素上的谓词扩展到列表
    3.7.6  转置、压缩和解压缩
    3.7.7  聚合多个结果
  3.8  源
  3.9  多元组
    3.9.1  建立模型
    3.9.2  记录类型
  3.10  树
    3.10.1  树归纳原理
    3.10.2  树递归管理
  3.11  灌木
    3.11.1  灌木归纳原理
    3.11.2  灌木递归管理
  3.12  包
    3.12.1  基本包过程
    3.12.2  包操作
    3.12.3  包递归管理
  3.13  等价关系
  3.14  集合
    3.14.1  集合递归管理
    3.14.2  筛选和划分
    3.14.3  其他集合运算
    3.14.4  并集、交集和差集
  3.15  表
  3.16  缓冲区
第4章  排序
  4.1  序关系
    4.1.1  隐式定义的等价关系
    4.1.2  测试一个列表是否有序
    4.1.3  查找极值
    4.1.4  复合序关系
    4.1.5  字典序
  4.2  排序算法
    4.2.1  插入排序
    4.2.2  选择排序
    4.2.3  快速排序
    4.2.4  归并排序
  4.3  二叉搜索树
    4.3.1  测试二叉搜索树不变量
    4.3.2  从二叉搜索树中提取一个值
    4.3.3  二叉搜索树排序
  4.4  红黑树
    4.4.1  实现红黑树
    4.4.2  颜色翻转和旋转
    4.4.3  插入
    4.4.4  查找
    4.4.5  删除
    4.4.6  用红黑树实现表
  4.5  堆
    4.5.1  折叠和展开堆
    4.5.2  堆排序
  4.6  序统计量
第5章  组合构造
  5.1  笛卡儿积
    5.1.1  笛卡儿积排序
    5.1.2  排位和去排位
  5.2  列表选择
    5.2.1  子列表
    5.2.2  分组
    5.2.3  子序列和选择
  5.3  包选择
  5.4  排列
  5.5  划分
    5.5.1  包划分
    5.5.2  划分自然数
第6章  图
  6.1  图的实现
    6.1.1  图的构造
    6.1.2  图与关系
    6.1.3  图的性质
    6.1.4  其他图访问方法
    6.1.5  无向图
  6.2  深度优先遍历
    6.2.1  图的遍历
    6.2.2  深度优先
    6.2.3  拓扑排序
    6.2.4  可到达结点
  6.3  路径
  6.4  广度优先遍历
  6.5  生成树
  6.6  最短路径
    6.6.1  Bellman-Ford算法
    6.6.2  Dijkstra算法
    6.6.3  Floyd-Warshall算法
  6.7  流网络
第7章  子列表搜索
  7.1  简单低效的算法
  7.2  Knuth-Morris-Pratt算法
  7.3  Boyer-Moore算法
  7.4  Rabin-Karp算法
附录A 推荐读物
附录B (afp primitives)库
附录C 如何使用AFP库