内容简介
本书全面而系统地介绍了Haskell这一纯函数式编程语言的核心概念、编程范式及应用实践。Haskell以其惰性求值、强静态类型和不可变数据等特性,在计算机科学教育与实际工程中占据重要地位。本书从基础语法、类型系统、函数定义与组合入手,逐步深入到高阶函数、类型类、代数数据类型、模式匹配、递归与列表操作等关键主题,帮助读者建立扎实的函数式思维。书中强调利用纯函数和不可变数据构建可靠、模块化、易测试的代码,并通过丰富的实例展示如何将理论应用于实际问题的求解。
随着内容推进,本书进一步探讨了函数式程序设计的高级话题,如函子、应用函子、单子及其在输入输出、状态处理、错误处理等场景中的应用,使读者能够理解并运用Haskell优雅地解决复杂问题。此外,书中还涉及了模块化编程、代码组织、性能考量以及与其他语言和系统的互操作等内容,为读者提供了从语言学习到工程实战的全方位指导。
本书适合作为高校计算机专业学生学习函数式编程的教材,也适合有编程经验的开发者自学Haskell或拓展编程视野。通过阅读本书,读者将能够掌握Haskell的核心思想与主要技术,提升抽象思维和软件设计能力,为深入学习类型理论、形式化方法或函数式架构奠定坚实基础。
目录
1.1 函数和类型
1.2 函数复合
1.3 例子:高频词
1.4 例子:数字转换为词
1.5 Haskell平台
1.6 习题
1.7 答案
1.8 注记
第2章 表达式、类型和值
2.1 GHCi会话
2.2 名称和运算符
2.3 求值
2.4 类型和类族
2.5 打印值
2.6 模块
2.7 Haskell版面
2.8 习题
2.9 答案
2.10 注记
3.1 类族Num
3.2 其他数值类族
3.3 取底函数的计算
3.4 自然数
3.5 习题
3.6 答案
3.7 注记
第4章 列表
4.1 列表记法
4.2 枚举
4.3 列表概括
4.4 一些基本运算
4.5 串联
4.6 函数cancat、 map和filter
4.7 函数zip和zipWith
4.8 高频词的完整解
4.9 习题
4.10 答案
4.11 注记
第5章 一个简单的数独求解器
5.1 问题说明
5.2 合法程序的构造
5.3 修剪选择矩阵
5.4 格子的扩展
5.5 习题
5.6 答案
5.7 注记
第6章 证明
6.1 自然数上的归纳法
6.2 列表归纳法
6.3 函数foldr
6.4 函数foldl
6.5 函数scanl
6.6 最大连续段和问题
6.7 习题
6.8 答案
6.9 注记
第7章 效率
7.1 惰性求值
7.2 空间的控制
7.3 运行时间的控制
7.4 时间分析
7.5 累积参数
7.6 元组
7.7 排序
7.8 习题
7.9 答案
7.10 注记
第8章 精美打印
8.1 问题背景
8.2 文档
8.3 一种直接实现
8.4 例子
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 习题
9.8 答案
9.9 注记
第10章 命令式函数式程序设计
10.1 IO单子
10.2 更多的单子
10.3 状态单子
10.4 ST单子
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 注记
第12章 一个简单的等式计算器
12.1 基本思想
12.2 表达式
12.3 定律
12.4 计算
12.5 重写
12.6 匹配
12.7 代换
12.8 测试计算器
12.9 习题
12.10 答案
12.11 注记
本书由书友@锦小书发布分享,仅供学习交流使用,版权归原作者所有。如有侵权,请联系我们删除。
📖 支持知识自由流动
每一本书的稳定访问,都离不开服务器、存储与带宽的长期维护。

