本书脱离特定的语言特性,关注各种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 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
《中国经济与社会史评论(2016年卷)》内容简介:《中国经济与社会史评论》是社会和经济史方面的集刊,汇集了大量相关优秀文章,如
《我爱问连岳之少年问答》内容简介:说到“少年”,我们常常会哼起那首熟悉的旋律:“小小少年,很少烦恼,眼望四周阳光照”。曾经
《饮膳正要译注》内容简介:《饮膳正要》三卷,元忽思慧(又作和斯辉)撰,是我国第一部营养学专著。忽思慧于元仁宗延祐年间(公元
工业设计人机工程-第2版 本书特色 《工业设计人机工程(第2版)》:普通高等教育“十一五”国家级规划教材工业设计人机工程-第2版 内容简介 本书为普通高等教育“...
《东北沿边地区开发开放战略研究》内容简介:衣保中著的《东北沿边地区开发开放战略研究/东北亚研究丛书》立足区域经济联动发展的可
《王维诗集》内容简介:王维是盛唐时期的著名诗人,苏轼赞他“味摩诘之诗,诗中有画;观摩诘之画,画中有诗”,尤以山水诗成就为最
基于R的统计分析与数据挖掘(统计数据分析与应用丛书) 本书特色 薛薇博士编著的这本《基于r的统计分析与数据 挖掘》聚焦当今备受国内外数据分析师和数据应用者 关注...
《点茶之书:一盏宋茶的技艺与美学》内容简介:中国的茶文化“兴于唐,盛于宋”,两宋时期由于文人士大夫积极推广、参与,茶文化得
《清代学政规制与皇权体制》内容简介:典章制度,历来是认识中国历史的枢纽。清朝典制集历代王朝体制之大成,又在应对近代大变局中
《机器意识:人工智能如何为机器人装上大脑》内容简介:科学是对宇宙运行的基本原理的研究,很大程度上基于实验和观察。这种一贯统
《资本与意识形态·漫画版》内容简介:⭐一个家族八代人,穿越200多年时空岁月,见证从法国大革命到21世纪,全球范围内的财富变迁
《手机摄影必修课》内容简介:本书主要内容为手机摄影的入门和进阶。内容涵盖摄影的基本概念、手机摄影对于摄影的改变、如何用手机
《色彩搭配原理与技巧》内容简介:色彩搭配是门看似简单,其实又很深奥的学问。画画的人可能会遇到这种情况:刚开始很顺手,画面
数据库原理及应用(SQLServer2005)-数学指导与习题解答 本书特色 《数据库原理及应用(SQL Server 2005):教学指导与习题解答》是国家级...
2015-数据分析-基于内容与结构的网络舆情分析报告 本书特色 在web2.0技术与应用不断深化以及移动应用不断产生的新时代,互联网已成为社会民意与民声的重要来...
《图解新款汽车传感器结构、原理与检修》内容简介:本书在系统介绍传感器结构与测量原理的基础上,系统总结了汽车传感器的结构类型
FPGA设计实战演练(高级技巧篇) 本书特色现代fpga的结构越来越复杂,多时钟域的设计现在已是常态。对于功能电路来说,复位结构都必不可少。在同步逻辑设计中如何...
这本书分城市广场、邻里公园、小型公园和袖珍公园、大学校园户外空间、老年住宅区户外空间等部分,系统地阐述了城市空间设计的理
《你的保险指南》内容简介:如何基于自身身体状况挑选匹配的保险产品? •如何避免拒保拒赔? •如何为家庭成员量身定制保单? 作者结
《捍卫隐私》内容简介:你的密码可以被轻易破解? 除了你,还有谁在读你的电子邮件? 你的手机就是一个窃听器? 勒索病毒是如何一步