JavaScript 函数式编程

JavaScript 函数式编程
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] , ,
2015-08
版次: 1
ISBN: 9787115390608
定价: 49.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 204页
字数: 258千字
正文语种: 简体中文
原版书名: Functional JavaScript
109人买过
  • JavaScript是近年来非常受瞩目的一门编程语言,它既支持面向对象编程,也支持函数式编程。本书专门介绍JavaScript函数式编程的特性。
    全书共9章,分别介绍了JavaScript函数式编程、一等函数与Applicative编程、变量的作用域和闭包、高阶函数、由函数构建函数、递归、纯度和不变性以及更改政策、基于流的编程、类编程。除此之外,附录中还介绍了更多函数式JavaScript。
    本书内容全面,示例丰富,适合想要了解函数式编程的JavaScript程序员和学习JavaScript的函数式程序员阅读。 MichaelFogus是DynamicAnimationSystems的软件架构师,在分布式仿真、机器视觉和专家系统建设方面经验丰富。他是Clojure、ClojureScript以及Underscore-contrib的贡献者,还是《Clojure编程乐趣》的作者。 第1章 JavaScript函数式编程简介 1
    1.1 JavaScript案例 1
    1.2 开始函数式编程 4
    1.2.1 为什么函数式编程很重要 4
    1.2.2 以函数为抽象单元 7
    1.2.3 封装和隐藏 9
    1.2.4 以函数为行为单位 10
    1.2.5 数据抽象 14
    1.2.6 函数式JavaScript初试 17
    1.2.7 加速 19
    1.3 Underscore示例 22
    1.4 总结 23
    第2章 一等函数与Applicative编程 24
    2.1 函数是一等公民 24
    2.2 Applicative编程 30
    2.2.1 集合中心编程 31
    2.2.2 Applicative编程的其他实例 32
    2.2.3 定义几个Applicative函数 35
    2.3 数据思考 36
    2.4 总结 43
    第3章 变量的作用域和闭包 44
    3.1 全局作用域 44
    3.2 词法作用域 46
    3.3 动态作用域 47
    3.4 函数作用域 51
    3.5 闭包 52
    3.5.1 模拟闭包 53
    3.5.2 使用闭包 57
    3.5.3 闭包的抽象 59
    3.6 总结 60
    第4章 高阶函数 62
    4.1 以其他函数为参数的函数 62
    4.1.1 关于传递函数的思考:max、finder和best 63
    4.1.2 关于传递函数的更多思考:重复、反复和条件迭代
    (iterateUntil) 65
    4.2 返回其他函数的函数 67
    4.2.1 高阶函数捕获参数 69
    4.2.2 捕获变量的好处 69
    4.2.3 防止不存在的函数:fnull 72
    4.3 整合:对象校验器 74
    4.4 总结 77
    第5章 由函数构建函数 78
    5.1 函数式组合的精华 78
    5.2 柯里化(Currying) 83
    5.2.1 向右柯里化,还是向左 84
    5.2.2 自动柯里化参数 85
    5.2.3 柯里化流利的API 88
    5.2.4 JavaScript柯里化的缺点 89
    5.3 部分应用 89
    5.3.1 部分应用一个和两个已知的参数 91
    5.3.2 部分应用任意数量的参数 92
    5.3.3 局部应用实战:前置条件 93
    5.4 通过组合端至端的拼接函数 96
    5.5 总结 98
    第6章 递归 100
    6.1 自吸收(self-absorbed)函数(调用自己的函数) 100
    6.1.1 用递归遍历图 105
    6.1.2 深度优先自递归搜索 106
    6.1.3 递归和组合函数:Conjoin和Disjoin 108
    6.2 相互关联函数(函数调用其他会再调用回它的函数) 110
    6.2.1 使用递归深克隆 111
    6.2.2 遍历嵌套数组 112
    6.3 太多递归了 114
    6.3.1 生成器 117
    6.3.2 蹦床原理以及回调 120
    6.4 递归是一个底层操作 121
    6.5 总结 122
    第7章 纯度、不变性和更改政策 123
    7.1 纯度 123
    7.1.1 纯度和测试之间的关系 124
    7.1.2 提取纯函数 125
    7.1.3 测试不纯函数的属性 126
    7.1.4 纯度与引用透明度的关系 127
    7.1.5 纯度和幂等性 129
    7.2 不变性 130
    7.2.1 如果一棵树倒在树林里,有没有声音? 132
    7.2.2 不变性与递归 133
    7.2.3 冻结和克隆 134
    7.2.4 在函数级别上观察不变性 136
    7.2.5 观察对象的不变性 137
    7.2.6 对象往往是一个低级别的操作 140
    7.3 控制变化的政策 141
    7.4 总结 144
    第8章 基于流的编程 145
    8.1 链接 145
    8.1.1 惰性链 148
    8.1.2 Promises 152
    8.2 管道 154
    8.3 数据流与控制流 158
    8.3.1 找个一般的形状 161
    8.3.2 函数可以简化创建action 164
    8.4 总结 166
    第9章 类编程 167
    9.1 数据导向 167
    9.2 Mixins 173
    9.2.1 修改核心原型 175
    9.2.2 类层次结构 176
    9.2.3 改变层级结构 179
    9.2.4 用Mixin扁平化层级结构 180
    9.2.5 通过Mixin扩展新的语义 185
    9.2.6 通过Mixin混合出新的类型 187
    9.2.7 方法是低级别操作 188
    9.3 }).call(“Finis”); 190
    附录A 更多函数式JavaScript 191
    A.1 JavaScript的函数式库 191
    A.1.1 函数式JavaScript 191
    A.1.2 Underscore-contrib 192
    A.1.3 RxJS 192
    A.1.4 Bilby 194
    A.1.5 allong.es 195
    A.1.6 其他函数式库 196
    A.2 能编译成JavaScript的函数式语言 196
    A.2.1 ClojureScript 196
    A.2.2 CoffeeScript 197
    A.2.3 Roy 198
    A.2.4 Elm 198
  • 内容简介:
    JavaScript是近年来非常受瞩目的一门编程语言,它既支持面向对象编程,也支持函数式编程。本书专门介绍JavaScript函数式编程的特性。
    全书共9章,分别介绍了JavaScript函数式编程、一等函数与Applicative编程、变量的作用域和闭包、高阶函数、由函数构建函数、递归、纯度和不变性以及更改政策、基于流的编程、类编程。除此之外,附录中还介绍了更多函数式JavaScript。
    本书内容全面,示例丰富,适合想要了解函数式编程的JavaScript程序员和学习JavaScript的函数式程序员阅读。
  • 作者简介:
    MichaelFogus是DynamicAnimationSystems的软件架构师,在分布式仿真、机器视觉和专家系统建设方面经验丰富。他是Clojure、ClojureScript以及Underscore-contrib的贡献者,还是《Clojure编程乐趣》的作者。
  • 目录:
    第1章 JavaScript函数式编程简介 1
    1.1 JavaScript案例 1
    1.2 开始函数式编程 4
    1.2.1 为什么函数式编程很重要 4
    1.2.2 以函数为抽象单元 7
    1.2.3 封装和隐藏 9
    1.2.4 以函数为行为单位 10
    1.2.5 数据抽象 14
    1.2.6 函数式JavaScript初试 17
    1.2.7 加速 19
    1.3 Underscore示例 22
    1.4 总结 23
    第2章 一等函数与Applicative编程 24
    2.1 函数是一等公民 24
    2.2 Applicative编程 30
    2.2.1 集合中心编程 31
    2.2.2 Applicative编程的其他实例 32
    2.2.3 定义几个Applicative函数 35
    2.3 数据思考 36
    2.4 总结 43
    第3章 变量的作用域和闭包 44
    3.1 全局作用域 44
    3.2 词法作用域 46
    3.3 动态作用域 47
    3.4 函数作用域 51
    3.5 闭包 52
    3.5.1 模拟闭包 53
    3.5.2 使用闭包 57
    3.5.3 闭包的抽象 59
    3.6 总结 60
    第4章 高阶函数 62
    4.1 以其他函数为参数的函数 62
    4.1.1 关于传递函数的思考:max、finder和best 63
    4.1.2 关于传递函数的更多思考:重复、反复和条件迭代
    (iterateUntil) 65
    4.2 返回其他函数的函数 67
    4.2.1 高阶函数捕获参数 69
    4.2.2 捕获变量的好处 69
    4.2.3 防止不存在的函数:fnull 72
    4.3 整合:对象校验器 74
    4.4 总结 77
    第5章 由函数构建函数 78
    5.1 函数式组合的精华 78
    5.2 柯里化(Currying) 83
    5.2.1 向右柯里化,还是向左 84
    5.2.2 自动柯里化参数 85
    5.2.3 柯里化流利的API 88
    5.2.4 JavaScript柯里化的缺点 89
    5.3 部分应用 89
    5.3.1 部分应用一个和两个已知的参数 91
    5.3.2 部分应用任意数量的参数 92
    5.3.3 局部应用实战:前置条件 93
    5.4 通过组合端至端的拼接函数 96
    5.5 总结 98
    第6章 递归 100
    6.1 自吸收(self-absorbed)函数(调用自己的函数) 100
    6.1.1 用递归遍历图 105
    6.1.2 深度优先自递归搜索 106
    6.1.3 递归和组合函数:Conjoin和Disjoin 108
    6.2 相互关联函数(函数调用其他会再调用回它的函数) 110
    6.2.1 使用递归深克隆 111
    6.2.2 遍历嵌套数组 112
    6.3 太多递归了 114
    6.3.1 生成器 117
    6.3.2 蹦床原理以及回调 120
    6.4 递归是一个底层操作 121
    6.5 总结 122
    第7章 纯度、不变性和更改政策 123
    7.1 纯度 123
    7.1.1 纯度和测试之间的关系 124
    7.1.2 提取纯函数 125
    7.1.3 测试不纯函数的属性 126
    7.1.4 纯度与引用透明度的关系 127
    7.1.5 纯度和幂等性 129
    7.2 不变性 130
    7.2.1 如果一棵树倒在树林里,有没有声音? 132
    7.2.2 不变性与递归 133
    7.2.3 冻结和克隆 134
    7.2.4 在函数级别上观察不变性 136
    7.2.5 观察对象的不变性 137
    7.2.6 对象往往是一个低级别的操作 140
    7.3 控制变化的政策 141
    7.4 总结 144
    第8章 基于流的编程 145
    8.1 链接 145
    8.1.1 惰性链 148
    8.1.2 Promises 152
    8.2 管道 154
    8.3 数据流与控制流 158
    8.3.1 找个一般的形状 161
    8.3.2 函数可以简化创建action 164
    8.4 总结 166
    第9章 类编程 167
    9.1 数据导向 167
    9.2 Mixins 173
    9.2.1 修改核心原型 175
    9.2.2 类层次结构 176
    9.2.3 改变层级结构 179
    9.2.4 用Mixin扁平化层级结构 180
    9.2.5 通过Mixin扩展新的语义 185
    9.2.6 通过Mixin混合出新的类型 187
    9.2.7 方法是低级别操作 188
    9.3 }).call(“Finis”); 190
    附录A 更多函数式JavaScript 191
    A.1 JavaScript的函数式库 191
    A.1.1 函数式JavaScript 191
    A.1.2 Underscore-contrib 192
    A.1.3 RxJS 192
    A.1.4 Bilby 194
    A.1.5 allong.es 195
    A.1.6 其他函数式库 196
    A.2 能编译成JavaScript的函数式语言 196
    A.2.1 ClojureScript 196
    A.2.2 CoffeeScript 197
    A.2.3 Roy 198
    A.2.4 Elm 198
查看详情
其他版本 / 全部 (1)
相关图书 / 更多
JavaScript 函数式编程
Java研发自测入门与进阶
林宁、魏兆玉
JavaScript 函数式编程
Java语言程序设计(2023年版)全国高等教育自学考试指导委员会
全国高等教育自学考试指导委员会
JavaScript 函数式编程
Java项目开发实战(微视频版)
陈强
JavaScript 函数式编程
Java+OpenCV案例佳作选
姚利民
JavaScript 函数式编程
Java核心编程技术(第4版微课版新世纪应用型高等教育软件专业系列规划教材)
张屹、蔡木生 编
JavaScript 函数式编程
Java Web及其框架技术
陈振兴
JavaScript 函数式编程
Japanese Ink Painting: The Art of Sumi-E
Okamoto;Naomi
JavaScript 函数式编程
JavaScript多线程编程实践
(美)托马斯 亨特二世(Thomas Hunter II),(加拿大)布莱恩 英格利什(Bryan English)
JavaScript 函数式编程
Java开发坑点解析:从根因分析到最佳实践
朱晔
JavaScript 函数式编程
Java面向对象程序设计(题库·微课视频版)
梁胜彬 主编 渠慎明 白晨希 马华蔚 甘志华 程素营 副主编
JavaScript 函数式编程
Java核心技术速学版(第3版)
(美)凯·S.霍斯特曼(Cay S. Horstmann)
JavaScript 函数式编程
Java到Kotlin:代码重构指南
(英)邓肯·麦格雷戈(Duncan McGregor)
您可能感兴趣 / 更多
JavaScript 函数式编程
归属感:如何通过社群获得商业竞争优势
[美]大卫·斯平克斯(David Spinks) 著;颉腾文化 出品
JavaScript 函数式编程
《世界上最大的肚子》2024百班千人暑期书目学前中班名师推荐全新正版现货速发
[美]雷米·查利普(美)柏顿·萨普瑞
JavaScript 函数式编程
经济学通义
[美]阿门·A.阿尔钦 (美)威廉·R.艾伦 著;[美]杰里·L.乔丹 编
JavaScript 函数式编程
数字化领导力 数字化转型锦囊,领导力精进指南 一本书掌握数字化转型领导力之道
[美]艾萨克·萨科里克 著;王磊 译;颉腾文化 出品;邓斌
JavaScript 函数式编程
法哲学基本原理
[美]马克·C.墨菲
JavaScript 函数式编程
雪花的故事(用照片展示雪花的秘密,为你揭开冬日奇景的奥秘)
[美]马克·卡西诺[美]乔恩·尼尔森
JavaScript 函数式编程
杜甫传
[美]弗洛伦斯.艾思柯
JavaScript 函数式编程
神奇的数字零:从数字0开始的极简数学史和人类发展史
[美]查尔斯·塞弗(Charles Seife)著 杨杨立汝 译
JavaScript 函数式编程
美利坚在燃烧:20世纪60年代以来的警察暴力与黑人反抗
[美]伊丽莎白·欣顿 著 胡位钧 译
JavaScript 函数式编程
温柔亲启
[美]艾米莉·狄金森 著;[美]艾伦·路易斯·哈特、[美]玛莎·内尔·史密斯 编
JavaScript 函数式编程
儒教中国及其现代命运(三部曲)
[美]列文森 作者;[中]季剑青 译者
JavaScript 函数式编程
逃家小兔成长绘本系列
[美]玛格丽特.怀兹.布朗