JavaScript 函数式编程

出版日期:2015-8
ISBN:9787115390606
作者:[美] Michael Fogus
页数:204页

内容概要

Michael Fogus是Dynamic Animation Systems的软件架构师,在分布式仿真、机器视觉和专家系统建设方面经验丰富。他是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和best63
4.1.2 关于传递函数的更多思考:重复、反复和条件迭代
(iterateUntil)65
4.2 返回其他函数的函数67
4.2.1 高阶函数捕获参数69
4.2.2 捕获变量的好处69
4.2.3 防止不存在的函数:fnull72
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 柯里化流利的API88
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和Disjoin108
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 Promises152
8.2 管道154
8.3 数据流与控制流158
8.3.1 找个一般的形状161
8.3.2 函数可以简化创建action164
8.4 总结166
第9章 无类编程167
9.1 数据导向167
9.2 Mixins173
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 更多函数式JavaScript191
A.1 JavaScript的函数式库191
A.1.1 函数式JavaScript191
A.1.2 Underscore—contrib192
A.1.3 RxJS192
A.1.4 Bilby194
A.1.5 allong.es195
A.1.6 其他函数式库196
A.2 能编译成JavaScript的函数式语言196
A.2.1 ClojureScript196
A.2.2 CoffeeScript197
A.2.3 Roy198
A.2.4 Elm198
附录B推荐书目

作者简介

JavaScript 是近年来非常受瞩目的一门编程语言,它既支持面向对象编程,也支持函数式编程。本书专门介绍JavaScript函数式编程的特性。
全书共9章,分别介绍了JavaScript函数式编程、一等函数与Applicative编程、变量的作用域和闭包、高阶函数、由函数构建函数、递归、纯度和不变性以及更改政策、基于流的编程、类编程。除此之外,附录中还介绍了更多函数式JavaScript。
本书内容全面,示例丰富,适合想要了解函数式编程的JavaScript程序员和学习JavaScript的函数式程序员阅读。


 JavaScript 函数式编程下载 更多精彩书评



发布书评

 
 


精彩书评 (总计1条)

  •     这是一本看的过程中和之后让我觉得超级不爽的书。首先,我要肯定的是作者确实在JavaScript函数式编程方面有非常深入的研究。————————————————————但是这本书真的算不上一本好书~~第二点,翻译真的不怎么样,有的地方简直不能说是一个正确的句子,看第二章2.3节的时候我甚至都想放弃了,很多地方不知道要表达什么。第三点,作者本身逻辑不严谨, 即使是在同一段内容,内容也是松散的,感觉就是东一榔头,西一棒子。叙述混乱,不够直接,而且罗里吧嗦。更可笑的是,开篇序里面那个傻叉居然说这本书和Crockford的精粹类似,真想用最近菲律宾前官员那句话问问他:你眼睛瞎了么?最后一点:作者明明用了很多underscore库函数,非要做婊子装纯立牌坊,很多程序里用到了库函数,连个功能是什么也不说一下,然后你翻几页又发现这逼在后面又开始讲这个库函数了,你说你早点在前面说清楚要死啊,在图书馆看的真是不爽。

精彩短评 (总计12条)

  •     讲得一般般,我只是用来看知识点。
  •     不同的思维方式,好聪明.. 感觉还得要再看一遍...
  •     #纸质书# 3.7 分。
  •     翻译渣
  •     了解函数式编程的思想
  •     翻译略渣,不过因FP的内容确实比较绕,可以原谅一部分。但是内容是真心不错,提供了完全不同的编程体验。
  •     书里面的例子实现的都短小精干,这些思想需要在实践中慢慢培养。这本书还需要再温故。
  •     FP里如何curry, compose都有覆盖,但对Monad的概念却是含糊不清甚至尽量不提,这不是一本好的FP书应该有的样子。关于翻译,不得不吐槽,虽然同是我司的同事翻译,但我给一星都嫌多。书中充斥着大量的,不经过自己修饰的,直译而无中文语序的句子,读着让人不知所云而抓狂。英文里表目的的词可以后置,可以用大段句子去修饰你的主语,可是你翻译的时候能不能想想完全直接译成中文连语序都不调整一下,是一种合理的做法吗?还是说译者连基本的中文语言都没完全掌握好。不但如此,我非常怀疑作者是不会JavaScript的,文出现几次颠倒黑白的段落,这简直是对技术书籍的不尊重。
  •     读到第五章开始有点吃力,后面的完全读不下去了……书还是不错的,带我学会了underscore这个库
  •     看完最深的印象是:JavaScript作为一种没有在发明之初定义类的动态语言,就老老实实用对象实现原本你想实现的类吧,逻辑上实操上都省不少脑力。
  •     1.这本书的翻译很垃圾。 2.这本书的每个章节的独立度太差。 比如你在读第六章的时候能看到示例代码中调用了作者在第二章定义的函数。读纸质书的时候还得翻到前面找到定义。 3. 书的内容也很一般 想了解js函数式编程的还是在线读一下https://drboolean.gitbooks.io/mostly-adequate-guide/content/吧
  •     略高深,看完了,慢慢消化。。。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024