本书脱离特定的语言特性,关注各种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
《穿透式学习》内容简介:在数字时代,随着知识更迭速度的加快,学习变成了每一个职场人士必须终身面对的首要事情。高效工作的前提
《GPU精粹:实时图形编程的技术技巧和技艺》汇集了当今国际上前沿开发者们经多年研究和实践得出的实用的实时图形技术成果。《GPU精
《中国传统文化》内容简介:《中国传统文化》为云南省普通高等学校“十二五”规划教材,包括“绪论”和六章内容。第一章“天:天文
《马克思主义异化理论的当代诠释》内容简介:异化概念贯穿马克思思想体系发展的始终,马克思的异化理论对于社会现象和问题一直具有
InCyberneticRevolutionaries,EdenMedinatellsthehistoryoftwointersectingutopianvis...
Excel图表·公式·函数·数据分析从新手到高手:畅销升级版 本书特色《excel 图表.公式.函数.数据分析从新手到高手(畅销升级版)》内容覆盖了excel ...
《计算机主板维修不是事儿(第2版)》内容简介:本书是计算机主板芯片级维修的技术指导参考书,从电路基础、电路工作原理到维修思路
本书是数字通信领域的一本经典教材,通过对概率论及随机过程的复习,详细介绍了数字和模拟信源编码、数字调制信号和窄带信号与系
Iamstilluncertainwhichsurprisedmemore,thetelegramcallingmyattentiontotheadvertis...
《心理学与九型人格》内容简介:追求尽善尽美的完美型、古道热肠的奉献型、脚踏实地的实干型、充满艺术气息的浪漫型、头脑冷静的观
Java语言程序设计:21世纪高职高专新概念教材 内容简介 本书共11章,主要内容包括:面向对象程序设计的基本概念、原理、技术方法和Jave语言的基础知识,常用...
如果不是「包浩斯」,世界不是你眼中所見的樣子最前衛的藝術設計學校最前衛的藝術設計運動最經典.最普及的「包浩斯」論著英、美
Updatedandrevisedtoreflectchangestocascadingstylesheets(CSS)developmentprocedure...
《征服法国外籍军团的华人特种兵》内容简介:2006—2016年,吴鑫磊前往法国留学并在法国外籍军团服役。十年间,他从语言不通的新兵
Swift细致入门与最佳实践 本书特色 本书基于稳定版本的swift 2.0进行讲解,详细介绍了开发swift应用程序的知识点。本书共分25章,循序渐进地...
《文徵明琵琶行二种(中华碑帖精粹)》内容简介:文徵明,初名壁(也作璧),字徵明,后以字行,更字徵仲;祖籍衡山,自号衡山居士
计算机基础及Photoshop应用-全国计算机等级考试一级教程-(2015年版)-(含光盘) 本书特色 本书是根据教育部考试中心颁布的《全国计算机等级考试一级p...
机器智能人脸工程 本书特色 人脸工程学的研究内容主要包括人脸识别、表情识别和人脸合成三个部分。本书分别介绍了人脸识别、表情识别和人脸合成研究中用到的相关理论和算...
《工业4.0背景下的两岸产业合作》内容简介:本书通过大量一手资料及数据,以工业4.0为背景探讨两岸产业合作,构建两岸产业合作研究
大数据丛书模式识别与分类导论/(美)杰夫.多尔蒂 本书特色 模式识别与分类的使用是当今许多自动化电子系统的基础。然而,尽管该领域已出版了许多名著,但该主题仍然非...