出版者的话
译者序
前言
第1章何谓函数式程序设计1
1.1函数和类型1
1.2函数复合2
1.3例子:高频词2
1.4例子:数字转换为词5
1.5Haskell平台8
1.6习题9
1.7答案11
1.8注记13
第2章表达式、类型和值15
2.1GHCi会话15
2.2名称和运算符17
2.3求值18
2.4类型和类族20
2.5打印值22
2.6模块24
2.7Haskell版面24
2.8习题25
2.9答案29
2.10注记32
第3章数33
3.1类族Num33
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和filter46
4.7函数zip和zipWith49
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函数foldr78
6.4函数foldl81
6.5函数scanl83
6.6最大连续段和问题84
6.7习题87
6.8答案90
6.9注记96第7章效率977.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.1IO单子159
10.2更多的单子162
10.3状态单子165
10.4ST单子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
展开