JavaScript函数式编程指南PDF电子书下载
- 电子书积分:10 积分如何计算积分?
- 作 者:(美)路易斯·阿泰西奥(Luis Atencio)著
- 出 版 社:北京:人民邮电出版社
- 出版年份:2018
- ISBN:9787115462046
- 页数:210 页
第一部分 函数式思想 3
第1章 走近函数式 3
1.1 函数式编程有用吗? 4
1.2 什么是函数式编程? 5
1.2.1 函数式编程是声明式编程 7
1.2.2 副作用带来的问题和纯函数 8
1.2.3 引用透明和可置换性 12
1.2.4 存储不可变数据 13
1.3 函数式编程的优点 14
1.3.1 鼓励复杂任务的分解 15
1.3.2 使用流式链来处理数据 16
1.3.3 复杂异步应用中的响应 18
1.4 总结 19
第2章 高阶JavaScript 21
2.1 为什么要使用JavaScript? 22
2.2 函数式与面向对象的程序设计 22
2.2.1 管理JavaScript对象的状态 28
2.2.2 将对象视为数值 29
2.2.3 深冻结可变部分 31
2.2.4 使用Lenses定位并修改对象图 33
2.3 函数 34
2.3.1 一等函数 35
2.3.2 高阶函数 36
2.3.3 函数调用的类型 38
2.3.4 函数方法 39
2.4 闭包和作用域 40
2.4.1 全局作用域 42
2.4.2 函数作用域 43
2.4.3 伪块作用域 44
2.4.4 闭包的实际应用 45
2.5 总结 48
第二部分 函数式基础 51
第3章 轻数据结构,重操作 51
3.1 理解程序的控制流 52
3.2 链接方法 53
3.3 函数链 54
3.3.1 了解lambda表达式 54
3.3.2 用_.map做数据变换 56
3.3.3 用_.reduce收集结果 57
3.3.4 用_.filter删除不需要的元素 61
3.4 代码推理 62
3.4.1 声明式惰性计算函数链 63
3.4.2 类SQL的数据:函数即数据 66
3.5 学会递归地思考 68
3.5.1 什么是递归? 68
3.5.2 学会递归地思考 68
3.5.3 递归定义的数据结构 70
3.6 总结 73
第4章 模块化且可重用的代码 75
4.1 方法链与函数管道的比较 76
4.1.1 方法链接 77
4.1.2 函数的管道化 78
4.2 管道函数的兼容条件 78
4.2.1 函数的类型兼容条件 78
4.2.2 函数与元数:元组的应用 79
4.3 柯里化的函数求值 82
4.3.1 仿真函数工厂 85
4.3.2 创建可重用的函数模板 86
4.4 部分应用和函数绑定 87
4.4.1 核心语言扩展 89
4.4.2 延迟函数绑定 89
4.5 组合函数管道 90
4.5.1 HTML部件的组合 91
4.5.2 函数组合:描述与求值分离 92
4.5.3 函数式库的组合 95
4.5.4 应对纯的代码和不纯的代码 96
4.5.5 point-free编程 98
4.6 使用函数组合子来管理程序的控制流 99
4.6.1 identity(I-combinator) 99
4.6.2 tap(K-组合子) 99
4.6.3 alt(OR-组合子) 100
4.6.4 seq(S-组合子) 101
4.6.5 fork(join)组合子 101
4.7 总结 102
第5章 针对复杂应用的设计模式 103
5.1 命令式错误处理的不足 104
5.1.1 用try-catch处理错误 104
5.1.2 函数式程序不应抛出异常 105
5.1.3 空值(null)检查问题 106
5.2 一种更好的解决方案——Functor 106
5.2.1 包裹不安全的值 107
5.2.2 Functor定义 108
5.3 使用Monad函数式地处理错误 111
5.3.1 Monad:从控制流到数据流 111
5.3.2 使用Maybe Monad和Either Monad来处理异常 115
5.3.3 使用IO Monad与外部资源交互 123
5.4 Monadic链式调用及组合 126
5.5 总结 131
第三部分 函数式技能提升 135
第6章 坚不可摧的代码 135
6.1 函数式编程对单元测试的影响 136
6.2 测试命令式代码的困难 137
6.2.1 难以识别和分解任务 137
6.2.2 对共享资源的依赖会导致结果不一致 138
6.2.3 按预定义顺序执行 139
6.3 测试函数式代码 140
6.3.1 把函数当作黑盒子 140
6.3.2 专注于业务逻辑,而不是控制流 141
6.3.3 使用Monadic式从不纯的代码中分离出纯函数 142
6.3.4 mock外部依赖 144
6.4 通过属性测试制定规格说明 146
6.5 通过代码覆盖率衡量有效性 152
6.5.1 衡量函数式代码测试的有效性 152
6.5.2 衡量函数式代码的复杂性 155
6.6 总结 158
第7章 函数式优化 159
7.1 函数执行机制 160
7.1.1 柯里化与函数上下文堆栈 161
7.1.2 递归的弱点 164
7.2 使用惰性求值推迟执行 165
7.2.1 使用函数式组合子避免重复计算 167
7.2.2 利用shortcut fusion 167
7.3 实现需要时调用的策略 168
7.3.1 理解记忆化 169
7.3.2 记忆化计算密集型函数 169
7.3.3 有效利用柯里化与记忆化 172
7.3.4 通过分解来实现更大程度的记忆化 173
7.3.5 记忆化递归调用 173
7.4 递归和尾递归优化 175
7.5 总结 178
第8章 管理异步事件以及数据 181
8.1 异步代码的挑战 182
8.1.1 在函数之间创建时间依赖关系 182
8.1.2 陷入回调金字塔 183
8.1.3 使用持续传递式样 186
8.2 一等公民Promise 188
8.2.1 链接将来的方法 190
8.2.2 组合同步和异步行为 195
8.3 生成惰性数据 197
8.3.1 生成器与递归 199
8.3.2 迭代器协议 200
8.4 使用RxJS进行函数式和响应式编程 202
8.4.1 数据作为Observable序列 202
8.4.2 函数式编程与响应式编程 203
8.4.3 RxJS和Promise 205
8.5 总结 206
附录 本书中使用的JavaScript库 207
函数式JavaScript库 207
使用的其他库 208
- 《近代旅游指南汇刊二编 16》王强主编 2017
- 《甘肃省档案馆指南》甘肃省档案馆编 2018
- 《近代旅游指南汇刊 31》王强主编 2014
- 《近代旅游指南汇刊二编 10》王强主编 2017
- 《手工咖啡 咖啡爱好者的完美冲煮指南》(美国)杰茜卡·伊斯托,安德烈亚斯·威尔霍夫 2019
- 《近代旅游指南汇刊 13》王强主编 2014
- 《近代旅游指南汇刊 28》王强主编 2014
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《近代旅游指南汇刊 23》王强主编 2014
- 《重庆市绿色建筑评价技术指南》重庆大学,重庆市建筑节能协会绿色建筑专业委员会主编 2018
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《看漫画学钢琴 技巧 3》高宁译;(日)川崎美雪 2019
- 《优势谈判 15周年经典版》(美)罗杰·道森 2018
- 《社会学与人类生活 社会问题解析 第11版》(美)James M. Henslin(詹姆斯·M. 汉斯林) 2019
- 《海明威书信集:1917-1961 下》(美)海明威(Ernest Hemingway)著;潘小松译 2019
- 《迁徙 默温自选诗集 上》(美)W.S.默温著;伽禾译 2020
- 《上帝的孤独者 下 托马斯·沃尔夫短篇小说集》(美)托马斯·沃尔夫著;刘积源译 2017
- 《巴黎永远没个完》(美)海明威著 2017
- 《剑桥国际英语写作教程 段落写作》(美)吉尔·辛格尔顿(Jill Shingleton)编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《办好人民满意的教育 全国教育满意度调查报告》(中国)中国教育科学研究院 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《人民院士》吴娜著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《中国人民的心》杨朔著;夕琳编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中华人民共和国成立70周年优秀文学作品精选 短篇小说卷 上 全2册》贺邵俊主编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《中华人民共和国成立70周年优秀文学作品精选 中篇小说卷 下 全3册》洪治纲主编 2019