大小:20.41M
更新时间:23-09-14
系统:Pc
函数式编程思维是一本编程语言思维指导书,由美国程序员Neal Ford编著。本书主要讲解了在各种编程语言中函数式编程的普及趋势和详细编程方法,说明使用函数式思维来编程开发的益处,并附以实例,让读者接受并了解这种全新的编程方法,最后再使用和掌握这种全新的更方便更易于记忆的编程方法,适合所有程序员和编程爱好者阅读。
《函数式编程思维》脱离特定的语言特性,关注各种OOP语言的共同实践做法,展示如何通过函数式语言解决问题。例如,如何利用函数式语言,通过高阶函数、多元方法等完成代码重用。知名软件架构师Neal Ford为我们展示不同的编程范式,帮我们完成从Java命令式编程人员,到使用Java、Clojure、Scala函数式编程人员的完美转变,建立对函数式语言的语法和语义的良好理解。
译者序 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 Groovy 87
5.4.2 Scala 89
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 8 125
7.1.1 函数式接口 126
7.1.2 Optional 类型 128
7.1.3 Java 8 的stream 128
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
1、下载并解压,得出pdf文件
2、如果打不开本文件,请务必下载pdf阅读器
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
应用信息
同类热门
热门标签
网友评论0人参与,0条评论
最新排行
现代编译原理c语言描述18.5M阿佩尔pdf扫描版 编译器的设计与实现是一种实践性很强的工程,作为讲述编译器实现方法的编译原理课程,既需要讲述理论和原理,也离不开具体的实践,如何才能更好的学习和掌握呢?这里小编推荐广大学者阅读现代编译原理c语言描述,这是一本c语言编译原理课程的教材,由阿佩尔、金斯伯
查看
OpenStack云计算实战手册(第2版)30.75Mpdf扫描版 OpenStack云计算实战手册(第2版)是一本OpenStack云计算实战书籍,由Kevin Jackson和Cody Bunch 两人共同编著,黄凯,杜玉杰两人翻译。全书通过上百条涵盖了Nova、Swift、Keystone、Glance、Ho
查看
精通linux内核网络98.5Mpdf扫描版 精通linux内核网络是一本linux内核网络学习书籍,由以色列人Rami Rosen编著。全书从网络开发者视角讲解,详细介绍了linux内核网络栈的实现及其原理,并且配合清晰的图表,深入而详尽的分析了网络子系统架构和Linux内核网络子系统的内部
查看
android板级支持与硬件相关子系统141.16M android板级支持与硬件相关子系统是一本板级支持与硬件相关子系统书籍,由韩超编著。本书特别选定了Nexus One、Nexus S、Galaxy Nexus等几款手机作为参考平台。其中一个很大的优点就是以上几个平台都是Google认定的,具有典
查看
ansible自动化运维技术与最佳实践28.97M陈金窗pdf扫描版 ansible自动化运维技术与最佳实践由一线运维人员陈金窗,沈灿和刘政委三人联手打造。本书通过大量实例,详细讲解Ansible自动化运维方式与技巧。从基础的架构解析、安装配置,到典型应用场景与案例分析,作者分享了自己在工作中的实战经验,是掌握大规模
查看
Scala程序设计第二版15.83Mpdf高清完整版想要学习Scala程序设计看哪方面的书籍好呢?小编推荐您看看这本Scala程序设计第二版pdf格式的电子书,这本书里主要讲解了Scala的函数式风格、自适应类型、闭包、XML处理、模式匹配和并发编程等内容。本书既适合Scala初学者入门,也适合经验丰富的
查看