大小:20.41M
更新时间:23-09-14
系统:Pc
版本:v
函数式编程思维是一本编程语言思维指导书,由美国程序员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条评论
最新排行
嘉嘉打字成绩管理系统3.28Mv3.0绿色版 嘉嘉打字成绩管理系统是一款相对简单的打字学习软件。它主要提供了查看成绩、整理成绩、过关成绩表、成绩总表、学生资料表、数据备份、数据恢复和清空数据等应用模块,具有使用灵活,操作实用,管理合理的特色,可以通过学生日常打字成绩了解其当前学习状态,及时调整
查看
photoshop超实用修图调色教学集合(ps修图教程)1.28G172个视频 如何更好的掌握好photoshop,学习资源非常重要,在此小编特别为广大网友提供photoshop超实用修图调色教学集合下载,该合集包共有172个ps修图教程视频文件,全部为swf格式,即下即用,包括的内容有:制作照片艺术边缘效果、制作杂志封面效果
查看
汽车驾驶模拟器游戏电脑版648.64Mv2015.2.13官方版现在随着车辆的普及,越来越多的人选择考取驾照来充实自己,但是很多人平时都没有时间学习或者说去驾校开车。今天小编就给大家推荐一款专业的学车类软件:汽车驾驶模拟器软件电脑版,该软件能够模拟科二和科三真实驾驶环境,适用于准备学车的学员以及正在学车的学员。软件有
查看
Struts2+Spring3+Hibernate框架技术精讲与整合案例113.46M缪勇pdf扫描版 Java Web技术是最为流行的开发技术之一,以JSP技术为基础,整合Struts 2、Spring 3、Hibernate 4和Ajax技术开发Java Web应用已经成为当今主流的技术体系,但如何才能更好的入门和掌握呢?这里小编推荐阅读Stru
查看
深入理解linux驱动程序设计22.19M吴国伟pdf扫描版深入理解linux驱动程序设计是一本linux系统驱动设计指导书籍,由吴国伟,姚琳,毕成龙编著。全书以基于Linux内核3.8.13源代码而编写,全面深入地论述了Linux设备驱动开发的全方位技术,揭秘Linux内核、驱动开发、驱动开发实例,主要内容包括
查看
android编程权威指南第二版16.29Mpdf扫描版 android编程权威指南第二版是一本完全面向实战的Android编程指南,由[美]Bill Phillips、Chris Stewart、Brian Hardy、Kristin Marsicano编写,王明发翻译,人民出版社出版。全书全面覆盖了A
查看