Java等现代编程语言中出现了越来越多的函数式特性,跟随这本书,去了解语法表象之下真正需要掌握的新思维。中高级发者可以从知名软件架构师Neal Ford的演示中,体会到函数式编程思想是怎样通过改换视角,让我们站在了另一个抽象层次上,把编程问题看得更加清晰。 本书每一章都会给出各种函数式编程思维的示例,并用Java 8或其他具备函数式能力的JVM语言代码实现出来。改变你的思维是本书的愿望,至少读完本书的时候,你会对各种函数式概念有一个良好的把握。
售 价:¥
纸质售价:¥36.40购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
O'Reilly Media, Inc. 介绍
业界评论
译者序
前言
第1章 为什么
1.1 范式转变
1.2 跟上语言发展的潮流
1.3 把控制权让渡给语言/运行时
1.4 简洁
第2章 转变思维
2.1 普通的例子
2.1.1 命令式解法
2.1.2 函数式解法
2.2 案例研究:完美数的分类问题
2.2.1 完美数分类的命令式解法
2.2.2 稍微向函数式靠拢的完美数分类解法
2.2.3 完美数分类的Java 8实现
2.2.4 完美数分类的Functional Java实现
2.3 具有普遍意义的基本构造单元
2.3.1 筛选
2.3.2 映射
2.3.3 折叠/化约
2.4 函数的同义异名问题
2.4.1 筛选
2.4.2 映射
2.4.3 折叠/化约
第3章 权责让渡
3.1 迭代让位于高阶函数
3.2 闭包
3.3 柯里化和函数的部分施用
3.3.1 定义与辨析
3.3.2 Groovy的情况
3.3.3 Clojure的情况
3.3.4 Scala的情况
3.3.5 一般用途
3.4 递归
换个角度看列表
3.5 Stream和作业顺序重排
第4章 用巧不用蛮
4.1 记忆
4.1.1 缓存
4.1.2 引入“记忆”
4.2 缓求值
4.2.1 Java语言下的缓求值迭代子
4.2.2 使用Totally Lazy框架的完美数分类实现
4.2.3 Groovy语言的缓求值列表
4.2.4 构造缓求值列表
4.2.5 缓求值的好处
4.2.6 缓求值的字段初始化
第5章 演化的语言
5.1 少量的数据结构搭配大量的操作
5.2 让语言去迎合问题
5.3 对分发机制的再思考
5.3.1 Groovy对分发机制的改进
5.3.2 “身段柔软”的Clojure语言
5.3.3 Clojure的多重方法和基于任意特征的多态
5.4 运算符重载
5.4.1 Groovy
5.4.2 Scala
5.5 函数式的数据结构
5.5.1 函数式的错误处理
5.5.2 Either类
5.5.3 Option类
5.5.4 Either树和模式匹配
第6章 模式与重用
6.1 函数式语言中的设计模式
6.2 函数级别的重用
6.2.1 Template Method模式
6.2.2 Strategy模式
6.2.3 Flyweight模式和记忆
6.2.4 Factory模式和柯里化
6.3 结构化重用和函数式重用的对比
以结构为载体的代码重用
第7章 现实应用
7.1 Java 8
7.1.1 函数式接口
7.1.2 Optional类型
7.1.3 Java 8的stream
7.2 函数式的基础设施
7.2.1 架构
7.2.2 Web框架
7.2.3 数据库
第8章 多语言与多范式
8.1 函数式与元编程的结合
8.2 利用元编程在数据类型之间建立映射
由Functional Java和Groovy共同构造的无限长序列
8.3 多范式语言的后顾之忧
8.4 上下文型抽象与复合型抽象的对比
8.5 函数式金字塔
作者简介
封面介绍
看完了
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜