JavaScript函数式编程思想

JavaScript函数式编程思想
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2019-01
版次: 1
ISBN: 9787115499936
定价: 59.00
装帧: 其他
开本: 16开
纸张: 胶版纸
页数: 271页
21人买过
  • 本书主要介绍了函数式编程的基础理论、核心技术、典型特征和应用领域,以及它与面向对象编程的比较。本书既广泛介绍函数式编程的思想,也结合JavaScript的特点分析其应用和局限,注重从本质和内在逻辑的角度解释各个主题,并辅以相关的代码演示。对于函数式编程涉及的JavaScript语言本身的特性,以及与面向对象编程的比较,在书中也给予了重点讨论。 潘俊,从事软件开发工作15年,CSDN博客专家。曾在IBM developerWorks上发表过两篇论文:《在 LotusScript 中为自定义对象模拟事件》和《JavaScript 的新领域——动态图片处理(SVG)》;在百度阅读上发表了两本电子书:《IT原来如此——写给文科生的IT书》和《罗辑思维不逻辑》;《Live软件开发面面谈》已由清华大学出版社出版。 第 1章 名称1

    1.1  名称绑定1

    1.2  作用域3

    1.2.1  包块作用域与就近声明5

    1.2.2  静态作用域和动态作用域7

    1.2.3  前向引用和提升9

    1.3  闭包10

    1.4  小结14

    第 2章 类型系统15

    2.1  类型是什么15

    2.2  常用的数据类型16

    2.2.1  整数16

    2.2.2  浮点数16

    2.2.3  布尔值17

    2.2.4  字符17

    2.2.5  元组、结构体、类17

    2.2.6  函数19

    2.2.7  数组、字符串、队列、堆栈、

    列表20

    2.2.8  结构体、映射22

    2.2.9  深入复合类型23

    2.3  强类型与弱类型24

    2.4  名义类型与结构类型26

    2.5  静态类型与动态类型27

    2.5.1  静态类型27

    2.5.2  动态类型30

    2.6  多态性32

    2.6.1  子类型多态性33

    2.6.2  参数多态性35

    2.7  JavaScript的类型系统38

    2.7.1  undefined和null39

    2.7.2  弱类型43

    2.7.3  变成强类型47

    2.8  鸭子类型与多态性52

    2.9  小结53

    第3章 lambda演算和函数54

    3.1  命令式编程中函数的作用54

    3.2  lambda演算57

    3.2.1  定义57

    3.2.2  记法58

    3.2.3  化约58

    3.2.4  算数59

    3.2.5  逻辑运算61

    3.2.6  函数式编程的特点61

    3.3  JavaScript中的函数62

    3.3.1  定义函数63

    3.3.2  调用函数71

    3.3.3  传递参数71

    3.3.4  模块74

    3.4  小结75

    第4章 函数是一等值76

    4.1  函数参数76

    4.1.1  数组的迭代方法77

    4.1.2  设计函数参数78

    4.2  函数返回值81

    4.2.1  判断数据类型82

    4.2.2  日志83

    4.2.3  读取对象属性85

    4.3  高阶函数86

    4.3.1  组合谓词函数87

    4.3.2  改变函数参数数目89

    4.3.3  检查参数类型91

    4.3.4  记忆化94

    4.4  小结98

    第5章 部分应用和复合100

    5.1  部分应用100

    5.2  柯里化103

    5.2.1  增强的柯里化106

    5.2.2  从右向左柯里化108

    5.2.3  进一步增强的柯里化109

    5.2.4  柯里化的性能成本111

    5.2.5  应用柯里化的方式113

    5.2.6  参数的顺序115

    5.2.7  柯里化与高阶函数115

    5.3  复合118

    5.3.1  管道与数据流122

    5.3.2  函数类型与柯里化124

    5.4  一切都是函数126

    5.4.1  操作符的函数化127

    5.4.2  方法的函数化132

    5.4.3  控制流语句的函数化138

    5.5  性能与可读性141

    5.6  小结142

    第6章 副作用和不变性144

    6.1  副作用144

    6.2  纯函数145

    6.2.1  外部变量147

    6.2.2  实现148

    6.2.3  函数内部的副作用148

    6.2.4  闭包151

    6.3  不变性152

    6.3.1  哲学上的不变性与身份152

    6.3.2  简单类型与复合类型153

    6.3.3  值类型与引用类型154

    6.3.4  可变类型与不可变类型155

    6.3.5  可变数据类型的不足之处156

    6.3.6  克隆与冻结158

    6.3.7  不可变的数据结构163

    6.3.8  不可变的映射与数组167

    6.3.9  不可变类型的其他好处170

    6.4  小结171

    第7章 递归172

    7.1  调用自身173

    7.1.1  递归的思路176

    7.1.2  带累积参数的递归函数177

    7.2  递归的数据结构180

    7.2.1  构建列表180

    7.2.2  树184

    7.3  递归与迭代186

    7.3.1  名称186

    7.3.2  理念与对比186

    7.3.3  迭代协议189

    7.3.4  递归协议192

    7.3.5  搜索树195

    7.4  尾部递归198

    7.4.1  调用堆栈198

    7.4.2  尾部调用优化200

    7.4.3  怎样算是尾部调用201

    7.4.4  尾部递归204

    7.5  递归的效率205

    7.6  小结209

    第8章 列表211

    8.1  处理列表211

    8.1.1  函数的三种写法211

    8.1.2  处理列表的高阶函数213

    8.2  函数式编程的列表接口218

    8.2.1  没有副作用的方法219

    8.2.2  有副作用的方法220

    8.2.3  列表接口中的其他函数222

    8.3  小结225

    第9章 从面向对象到函数式编程226

    9.1  面向对象编程的特点226

    9.1.1  封装性227

    9.1.2  继承性227

    9.1.3  多态性228

    9.2  JavaScript面向对象编程232

    9.2.1  创建和修改单个对象233

    9.2.2  克隆和复制属性234

    9.2.3  原型234

    9.2.4  建构函数235

    9.2.5  建构函数与类型继承237

    9.2.6  原型与类型继承242

    9.2.7  Proxy与对象继承245

    9.2.8  Mixin248

    9.2.9  工厂函数251

    9.3  函数式编程的视角255

    9.3.1  不可变的对象256

    9.3.2  评判面向对象编程257

    9.4  方法链与复合函数260

    9.4.1  方法链260

    9.4.2  延迟的方法链264

    9.4.3  复合函数265

    9.4.4  函数式的SQL266

    9.5  小结271
  • 内容简介:
    本书主要介绍了函数式编程的基础理论、核心技术、典型特征和应用领域,以及它与面向对象编程的比较。本书既广泛介绍函数式编程的思想,也结合JavaScript的特点分析其应用和局限,注重从本质和内在逻辑的角度解释各个主题,并辅以相关的代码演示。对于函数式编程涉及的JavaScript语言本身的特性,以及与面向对象编程的比较,在书中也给予了重点讨论。
  • 作者简介:
    潘俊,从事软件开发工作15年,CSDN博客专家。曾在IBM developerWorks上发表过两篇论文:《在 LotusScript 中为自定义对象模拟事件》和《JavaScript 的新领域——动态图片处理(SVG)》;在百度阅读上发表了两本电子书:《IT原来如此——写给文科生的IT书》和《罗辑思维不逻辑》;《Live软件开发面面谈》已由清华大学出版社出版。
  • 目录:
    第 1章 名称1

    1.1  名称绑定1

    1.2  作用域3

    1.2.1  包块作用域与就近声明5

    1.2.2  静态作用域和动态作用域7

    1.2.3  前向引用和提升9

    1.3  闭包10

    1.4  小结14

    第 2章 类型系统15

    2.1  类型是什么15

    2.2  常用的数据类型16

    2.2.1  整数16

    2.2.2  浮点数16

    2.2.3  布尔值17

    2.2.4  字符17

    2.2.5  元组、结构体、类17

    2.2.6  函数19

    2.2.7  数组、字符串、队列、堆栈、

    列表20

    2.2.8  结构体、映射22

    2.2.9  深入复合类型23

    2.3  强类型与弱类型24

    2.4  名义类型与结构类型26

    2.5  静态类型与动态类型27

    2.5.1  静态类型27

    2.5.2  动态类型30

    2.6  多态性32

    2.6.1  子类型多态性33

    2.6.2  参数多态性35

    2.7  JavaScript的类型系统38

    2.7.1  undefined和null39

    2.7.2  弱类型43

    2.7.3  变成强类型47

    2.8  鸭子类型与多态性52

    2.9  小结53

    第3章 lambda演算和函数54

    3.1  命令式编程中函数的作用54

    3.2  lambda演算57

    3.2.1  定义57

    3.2.2  记法58

    3.2.3  化约58

    3.2.4  算数59

    3.2.5  逻辑运算61

    3.2.6  函数式编程的特点61

    3.3  JavaScript中的函数62

    3.3.1  定义函数63

    3.3.2  调用函数71

    3.3.3  传递参数71

    3.3.4  模块74

    3.4  小结75

    第4章 函数是一等值76

    4.1  函数参数76

    4.1.1  数组的迭代方法77

    4.1.2  设计函数参数78

    4.2  函数返回值81

    4.2.1  判断数据类型82

    4.2.2  日志83

    4.2.3  读取对象属性85

    4.3  高阶函数86

    4.3.1  组合谓词函数87

    4.3.2  改变函数参数数目89

    4.3.3  检查参数类型91

    4.3.4  记忆化94

    4.4  小结98

    第5章 部分应用和复合100

    5.1  部分应用100

    5.2  柯里化103

    5.2.1  增强的柯里化106

    5.2.2  从右向左柯里化108

    5.2.3  进一步增强的柯里化109

    5.2.4  柯里化的性能成本111

    5.2.5  应用柯里化的方式113

    5.2.6  参数的顺序115

    5.2.7  柯里化与高阶函数115

    5.3  复合118

    5.3.1  管道与数据流122

    5.3.2  函数类型与柯里化124

    5.4  一切都是函数126

    5.4.1  操作符的函数化127

    5.4.2  方法的函数化132

    5.4.3  控制流语句的函数化138

    5.5  性能与可读性141

    5.6  小结142

    第6章 副作用和不变性144

    6.1  副作用144

    6.2  纯函数145

    6.2.1  外部变量147

    6.2.2  实现148

    6.2.3  函数内部的副作用148

    6.2.4  闭包151

    6.3  不变性152

    6.3.1  哲学上的不变性与身份152

    6.3.2  简单类型与复合类型153

    6.3.3  值类型与引用类型154

    6.3.4  可变类型与不可变类型155

    6.3.5  可变数据类型的不足之处156

    6.3.6  克隆与冻结158

    6.3.7  不可变的数据结构163

    6.3.8  不可变的映射与数组167

    6.3.9  不可变类型的其他好处170

    6.4  小结171

    第7章 递归172

    7.1  调用自身173

    7.1.1  递归的思路176

    7.1.2  带累积参数的递归函数177

    7.2  递归的数据结构180

    7.2.1  构建列表180

    7.2.2  树184

    7.3  递归与迭代186

    7.3.1  名称186

    7.3.2  理念与对比186

    7.3.3  迭代协议189

    7.3.4  递归协议192

    7.3.5  搜索树195

    7.4  尾部递归198

    7.4.1  调用堆栈198

    7.4.2  尾部调用优化200

    7.4.3  怎样算是尾部调用201

    7.4.4  尾部递归204

    7.5  递归的效率205

    7.6  小结209

    第8章 列表211

    8.1  处理列表211

    8.1.1  函数的三种写法211

    8.1.2  处理列表的高阶函数213

    8.2  函数式编程的列表接口218

    8.2.1  没有副作用的方法219

    8.2.2  有副作用的方法220

    8.2.3  列表接口中的其他函数222

    8.3  小结225

    第9章 从面向对象到函数式编程226

    9.1  面向对象编程的特点226

    9.1.1  封装性227

    9.1.2  继承性227

    9.1.3  多态性228

    9.2  JavaScript面向对象编程232

    9.2.1  创建和修改单个对象233

    9.2.2  克隆和复制属性234

    9.2.3  原型234

    9.2.4  建构函数235

    9.2.5  建构函数与类型继承237

    9.2.6  原型与类型继承242

    9.2.7  Proxy与对象继承245

    9.2.8  Mixin248

    9.2.9  工厂函数251

    9.3  函数式编程的视角255

    9.3.1  不可变的对象256

    9.3.2  评判面向对象编程257

    9.4  方法链与复合函数260

    9.4.1  方法链260

    9.4.2  延迟的方法链264

    9.4.3  复合函数265

    9.4.4  函数式的SQL266

    9.5  小结271
查看详情
相关图书 / 更多
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函数式编程思想
传统手工艺企业代际传承研究
潘俊 著
JavaScript函数式编程思想
侵权法可预见性规则研究
潘俊
JavaScript函数式编程思想
多组分聚合物体系自组装理论与模拟
潘俊星 著
JavaScript函数式编程思想
邱志楠平治肺病学
潘俊辉;王鹏;喻清和
JavaScript函数式编程思想
全程工学交替-酒店专业人才培养的新思维
潘俊 著
JavaScript函数式编程思想
玩转桌面级3D打印机——DIY组装及打印实训教程
潘俊巧
JavaScript函数式编程思想
实体店就该这么做
潘俊贤 著
JavaScript函数式编程思想
系统制胜:一流团队靠系统
潘俊贤 著
JavaScript函数式编程思想
降雨作用下黄土边坡稳定与预警
潘俊义;王治军;杜志伟
JavaScript函数式编程思想
Live软件开发面面谈
潘俊
JavaScript函数式编程思想
BIM技术导论
潘俊武 王琳
JavaScript函数式编程思想
超强大脑:人人学得会的高效记忆术
潘俊锜 著