前言
第 1章 函数式编程概述 1
1.1 编程范式 1
1.2 细分过程范式 2
1.2.1 使用函数式范式 3
1.2.2 使用混合范式 5
1.2.3 对象的创建过程 6
1.2.4 乌龟塔 7
1.3 函数式编程经典示例 7
1.4 EDA 10
1.5 小结 10
第 2章 函数式编程的特点 11
2.1 头等函数 11
2.1.1 纯函数 12
2.1.2 高阶函数 13
2.2 不可变数据结构 13
2.3 严格求值与非严格求值 14
2.4 用递归代替循环语句 16
2.5 函数类型系统 19
2.6 回到最初 19
2.7 几个高级概念 20
2.8 小结 20
第3章 函数、迭代器和生成器 22
3.1 编写纯函数 23
3.2 函数作为头等对象 24
3.3 使用字符串 25
3.4 使用元组和命名元组 26
3.4.1 使用生成器表达式 27
3.4.2 生成器的局限 30
3.4.3 组合生成器表达式 31
3.5 使用生成器函数清洗原始数据 31
3.6 使用列表、字典和set 33
3.6.1 使用状态映射 36
3.6.2 使用bisect模块创建映射 37
3.6.3 使用有状态的set 38
3.7 小结 39
第4章 使用集合 40
4.1 函数分类概览 40
4.2 使用可迭代对象 41
4.2.1 解析XML文件 42
4.2.2 使用高级方法解析文件 43
4.2.3 组对序列元素 45
4.2.4 显式使用iter()函数 47
4.2.5 扩展简单循环 48
4.2.6 将生成器表达式应用于标量函数 51
4.2.7 用any()函数和all()函数进行归约 52
4.2.8 使用len()和sum() 54
4.2.9 使用汇总和计数进行统计分析 54
4.3 使用zip()函数实现结构化和平铺序列 56
4.3.1 将压缩序列解压 58
4.3.2 平铺序列 58
4.3.3 结构化一维序列 59
4.3.4 结构化一维序列的另一种方式 61