函数式编程思维
查字典图书网
当前位置: 查字典 > 图书网 > 编程> 函数式编程思维

函数式编程思维

7.5

作者: [美] Neal Ford
出版社: 人民邮电出版社
原作名: Functional Thinking
译者: 郭晓刚
出版年: 2015-8
页数: 162
定价: 49.00元
装帧: 平装
ISBN: 9787115400413



推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

内容简介:

本书脱离特定的语言特性,关注各种OOP语言的共同实践做法,展示如何通过函数式语言解决问题。例如,如何利用函数式语言,通过高阶函数、多元方法等完成代码重用。知名软件架构师Neal Ford为我们展示不同的编程范式,帮我们完成从Java命令式编程人员,到使用Java、Clojure、Scala函数式编程人员的完美转变,建立对函数式语言的语法和语义的良好理解。

作者简介:

Neal Ford

在跨国IT咨询公司ThoughtWorks担任总监、软件架构师和文化基因传播人。他精通各种编程语言,主要的咨询业务是大规模企业应用的设计、构建和工程实践。他还是一位国际知名的讲师,登上过全世界各种开发者会议的讲台。

目录:

译者序ix

前言xi

第1章 为什么1

1.1 范式转变2

1.2 跟上语言发展的潮流4

1.3 把控制权让渡给语言/ 运行时4

1.4 简洁5

第2章 转变思维9

2.1 普通的例子9

2.1.1 命令式解法9

2.1.2 函数式解法10

2.2 案例研究:完美数的分类问题15

2.2.1 完美数分类的命令式解法15

2.2.2 稍微向函数式靠拢的完美数分类解法16

2.2.3 完美数分类的Java 8实现18

2.2.4 完美数分类的Functional Java实现19

2.3 具有普遍意义的基本构造单元21

2.3.1 筛选22

2.3.2 映射23

2.3.3 折叠/ 化约25

2.4 函数的同义异名问题28

2.4.1 筛选28

2.4.2 映射31

2.4.3 折叠/ 化约33

第3章 权责让渡37

3.1 迭代让位于高阶函数37

3.2 闭包38

3.3 柯里化和函数的部分施用41

3.3.1 定义与辨析41

3.3.2 Groovy的情况42

3.3.3 Clojure的情况44

3.3.4 Scala的情况44

3.3.5 一般用途47

3.4 递归48

3.5 Stream 和作业顺序重排53

第4章 用巧不用蛮55

4.1 记忆55

4.1.1 缓存56

4.1.2 引入“记忆”59

4.2 缓求值65

4.2.1 Java语言下的缓求值迭代子65

4.2.2 使用Totally Lazy框架的完美数分类实现67

4.2.3 Groovy语言的缓求值列表69

4.2.4 构造缓求值列表72

4.2.5 缓求值的好处74

4.2.6 缓求值的字段初始化76

第5章 演化的语言79

5.1 少量的数据结构搭配大量的操作79

5.2 让语言去迎合问题81

5.3 对分发机制的再思考82

5.3.1 Groovy对分发机制的改进82

5.3.2 “身段柔软”的Clojure 语言83

5.3.3 Clojure的多重方法和基于任意特征的多态85

5.4 运算符重载87

5.4.1 Groovy87

5.4.2 Scala89

5.5 函数式的数据结构91

5.5.1 函数式的错误处理91

5.5.2 Either类92

5.5.3 Option类100

5.5.4 Either树和模式匹配100

第6章 模式与重用107

6.1 函数式语言中的设计模式107

6.2 函数级别的重用108

6.2.1 Template Method模式109

6.2.2 Strategy模式 111

6.2.3 Flyweight模式和记忆113

6.2.4 Factory模式和柯里化116

6.3 结构化重用和函数式重用的对比117

第7章 现实应用125

7.1 Java 8125

7.1.1 函数式接口126

7.1.2 Optional类型128

7.1.3 Java 8的stream128

7.2 函数式的基础设施129

7.2.1 架构129

7.2.2 Web 框架132

7.2.3 数据库133

第8章 多语言与多范式135

8.1 函数式与元编程的结合136

8.2 利用元编程在数据类型之间建立映射137

8.3 多范式语言的后顾之忧140

8.4 上下文型抽象与复合型抽象的对比141

8.5 函数式金字塔143

作者简介147

封面介绍147

文章试读:如果我们关注各种语言的发展情况就会发现,所有的主流语言都在进行函数式方面的 扩充。早走一步的Groovy 已经具备了丰富的函数式特性,包括像“记忆”(memoization,指运行时自动缓存函数返回值的能力)这样的高级特性在内。随着lambda 块(也就是高阶函数)被纳入Java 8,Java 语言也终于披挂上函数式的武器。JavaScript,这种也许算得上使用最为广泛的语言,本身就拥有不少函数...

(查看全部试读)

展开全文
热门标签:
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •