封面
版权信息
作者简介
数字版权声明
内容提要
前言
第1章 函数式编程概述
1.1 编程范式
1.2 细分过程范式
1.3 函数式编程经典示例
1.4 EDA
1.5 小结
第2章 函数式编程的特点
2.1 头等函数
2.2 不可变数据结构
2.3 严格求值与非严格求值
2.4 用递归代替循环语句
2.5 函数类型系统
2.6 回到最初
2.7 几个高级概念
2.8 小结
第3章 函数、迭代器和生成器
3.1 编写纯函数
3.2 函数作为头等对象
3.3 使用字符串
3.4 使用元组和命名元组
3.5 使用生成器函数清洗原始数据
3.6 使用列表、字典和set
3.7 小结
第4章 使用集合
4.1 函数分类概览
4.2 使用可迭代对象
4.3 使用zip()函数实现结构化和平铺序列
4.4 使用reversed()函数改变顺序
4.5 使用enumerate()函数包含下标值
4.6 小结
第5章 高阶函数
5.1 用max()函数和min()函数寻找极值
5.2 使用Python匿名函数
5.3 lambda与lambda算子
5.4 使用map()将函数应用于集合
5.5 使用map()函数处理多个序列
5.6 使用filter()函数接收或舍弃数据
5.7 使用filter()函数检测异常值
5.8 在iter()函数中使用哨兵值
5.9 使用sorted()函数将数据排序
5.10 编写高阶函数
5.11 编写高阶映射和过滤函数
5.12 编写生成器函数
5.13 使用可调用对象构建高阶函数
5.14 设计模式回顾
5.15 小结
第6章 递归与归约
6.1 简单数值递归
6.2 group-by归约:从多到少
6.3 小结
第7章 元组处理技术
7.1 使用元组收集数据
7.2 使用命名元组收集数据
7.3 使用函数构造器创建命名元组
7.4 使用多种元组结构代替状态类
7.5 多态与类型匹配
7.6 小结
第8章 itertools模块
8.1 使用无限迭代器
8.2 使用有限迭代器
8.3 使用tee()函数克隆迭代器
8.4 itertools模块代码范例
8.5 小结
第9章 高级itertools技术
9.1 笛卡儿积
9.2 对积进行归约
9.3 排列集合元素
9.4 生成所有组合
9.5 代码范例
9.6 小结
第10章 functools模块
10.1 函数工具
10.2 使用lru_cache保存已有计算结果
10.3 使用total_ordering定义类
10.4 使用partial()函数应用部分参数
10.5 使用reduce()函数归约数据集
10.6 小结
第11章 装饰器设计技术
11.1 作为高阶函数的装饰器
11.2 横切关注点
11.3 复合设计
11.4 向装饰器添加参数
11.5 实现更复杂的装饰器
11.6 复杂设计注意事项
11.7 小结
第12章 multiprocessing和threading模块
12.1 函数式编程和并发
12.2 并发的意义
12.3 使用多进程池和任务
12.4 使用多进程池进行并发处理
12.5 小结
第13章 条件表达式和operator模块
13.1 条件表达式求值
13.2 使用operator模块代替匿名函数
13.3 运算符的星号映射
13.4 使用operator模块函数进行归约
13.5 小结
第14章 PyMonad库
14.1 下载和安装
14.2 函数式复合和柯里化
14.3 函数式复合和PyMonad*运算符
14.4 函子和应用型函子
14.5 单子的bind()函数和>>运算符
14.6 模拟实现单子
14.7 单子的其他特性
14.8 小结
第15章 Web服务的函数式设计方法
15.1 HTTP“请求-响应”模型
15.2 WSGI标准
15.3 将Web服务定义为函数
15.4 跟踪使用情况
15.5 小结
第16章 优化与改进
16.1 记忆化和缓存
16.2 指定记忆化
16.3 尾递归优化
16.4 优化存储
16.5 优化精度
16.6 案例研究:卡方决策
16.7 计算期望值并显示列联表
16.8 函数式编程设计模式
16.9 小结
版权声明
内容简介
看完了
更新时间:2020-04-22 12:28:48