《Haskell函数式程序设计》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(英)理查德·伯德(Richard Bird)著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2016
  • ISBN:9787111529323
  • 页数:233 页
图书介绍:本书通过Haskell语言介绍函数式程序设计的基本思想和方法,讲解如何将数学思维应用于程序设计问题,以实现更高效的计算。本书涵盖Haskell的诸多特性,但并不是这门语言的参考指南,而是旨在利用丰富的实例和练习揭示函数式程序设计的本质。本书不要求读者具备程序设计基础,所涉及的数学知识也并不高深,既适合初学者阅读,也适合有经验的程序员参考。

第1章 何谓函数式程序设计 1

1.1 函数和类型 1

1.2 函数复合 2

1.3 例子:高频词 2

1.4 例子:数字转换为词 5

1.5 Haskell平台 8

1.6 习题 9

1.7 答案 11

1.8 注记 13

第2章 表达式、类型和值 15

2.1 GHCi会话 15

2.2 名称和运算符 17

2.3 求值 18

2.4 类型和类族 20

2.5 打印值 22

2.6 模块 24

2.7 Haskell版面 24

2.8 习题 25

2.9 答案 29

2.10 注记 32

第3章 数 33

3.1 类族Num 33

3.2 其他数值类族 33

3.3 取底函数的计算 35

3.4 自然数 37

3.5 习题 39

3.6 答案 40

3.7 注记 41

第4章 列表 42

4.1 列表记法 42

4.2 枚举 43

4.3 列表概括 43

4.4 一些基本运算 45

4.5 串联 46

4.6 函数cancat、 map和filter 46

4.7 函数zip和zipWith 49

4.8 高频词的完整解 50

4.9 习题 52

4.10 答案 55

4.11 注记 58

第5章 一个简单的数独求解器 59

5.1 问题说明 59

5.2 合法程序的构造 63

5.3 修剪选择矩阵 64

5.4 格子的扩展 67

5.5 习题 70

5.6 答案 71

5.7 注记 72

第6章 证明 73

6.1 自然数上的归纳法 73

6.2 列表归纳法 74

6.3 函数foldr 78

6.4 函数foldl 81

6.5 函数scanl 83

6.6 最大连续段和问题 84

6.7 习题 87

6.8 答案 90

6.9 注记 96

第7章 效率 97

7.1 惰性求值 97

7.2 空间的控制 100

7.3 运行时间的控制 103

7.4 时间分析 104

7.5 累积参数 106

7.6 元组 109

7.7 排序 112

7.8 习题 115

7.9 答案 117

7.10 注记 120

第8章 精美打印 121

8.1 问题背景 121

8.2 文档 122

8.3 一种直接实现 125

8.4 例子 126

8.5 最佳格式 128

8.6 项表示 129

8.7 习题 133

8.8 答案 135

8.9 注记 139

第9章 无穷列表 140

9.1 复习 140

9.2 循环列表 141

9.3 作为极限的无穷列表 143

9.4 石头-剪刀-布 147

9.5 基于流的交互 151

9.6 双向链表 152

9.7 习题 154

9.8 答案 156

9.9 注记 158

第10章 命令式函数式程序设计 159

10.1 IO单子 159

10.2 更多的单子 162

10.3 状态单子 165

10.4 ST单子 167

10.5 可变数组 169

10.6 不变数组 173

10.7 习题 175

10.8 答案 178

10.9 注记 183

第11章 句法分析 184

11.1 单子句法分析器 184

11.2 基本分析器 186

11.3 选择与重复 187

11.4 语法与表达式 190

11.5 显示表达式 192

11.6 习题 194

11.7 答案 196

11.8 注记 198

第12章 一个简单的等式计算器 199

12.1 基本思想 199

12.2 表达式 203

12.3 定律 206

12.4 计算 208

12.5 重写 210

12.6 匹配 211

12.7 代换 213

12.8 测试计算器 214

12.9 习题 221

12.10 答案 222

12.11 注记 224

索引 225