StackOverflow刚刚发布了2015发者调查,*受程序员喜爱的发语言中,Clojure和Scala分别位列第五和第六。排名**的是Swift,而Swift相比原先的Objective-C*重要的优之一,就是对函数式编程提供了更好的支持。同时,新一代分布式计算系统Spark不仅在实现中选择了Scala,其提供的**编程语言也是Scala。 所有迹象都显示,诞生50多年后,函数式编程却焕发了青春,越来越受到关注和青睐,从边缘地带步了主流,除了Scala和Clojure这些新生函数式编程语言大行其道之外,Java等老牌面向对象的编程语言也始支持匿名函数。函数式编程能简化发过程,尤其是大型知识管理系统应用程序从中受益良多。
售 价:¥
纸质售价:¥33.80购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
版权声明
译者序
前言
本书组织结构
模式模板
目的
概述
别名
函数式替代方案
范例代码
讨论
延展阅读
相关模式
为什么选择Scala和Clojure
如何阅读本书
在线资源
致谢
模式和函数式编程
1.1 什么是函数式编程
1.2 模式词汇表
替代面向对象模式
函数式模式介绍
TinyWeb:让模式协同工作
2.1 TinyWeb简介
2.2 采用Java来编写TinyWeb
HttpRequest和HttpResponse
视图和策略模式
控制器和模板方法模式
过滤器和函数式接口
将所有组件拼装到一起
使用TinyWeb
2.3 采用Scala来编写TinyWeb
第一步:更换视图
第二步:对控制器的第一次改造
不可变的HttpRequest和HttpResponse
将组件拼装到一起
使用Scala版本的TinyWeb
2.4 采用Clojure来编写TinyWeb
Clojure简介
Clojure中的控制器
数据map
Clojure版本的视图
将所有组件拼装到一起
使用TinyWeb
替代面向对象模式
简介
模式1 替代函数式接口
目的
概述
别名
函数式替换方案
范例代码:匿名函数
范例代码:具名函数
讨论
延展阅读
相关模式
模式2 替代承载状态的函数式接口
目的
概述
别名
函数式替代方案
简单的代码:闭包
讨论
延展阅读
相关模式
模式3 替代命令模式
目的
概述
别名
函数式替代方案
范例代码:现金出纳机
讨论
延展阅读
相关模式
模式4 替代生成器模式来获得不可变对象
目的
概述
函数式替代方案
范例代码:不可变数据
讨论
延展阅读
相关模式
模式5 替代迭代器模式
目的
概述
别名
函数式替换方案
范例代码:高阶函数
范例代码:序列推导
讨论
延展阅读
相关模式
模式6 替代模板方法模式
目的
概述
函数式替代方案
范例代码:评分报表
讨论
延展阅读
相关模式
模式7 替代策略模式
目的
概述
别名
函数式替代方案
范例代码:人名校验
讨论
延展阅读
相关模式
模式8 替代空对象
目的
概述
函数式替代方案
范例代码:默认值
范例代码:从无到有
讨论
延展阅读
模式9 替代装饰器模式
目的
概述
别名
函数式替代方案
范例代码:日志计算器
延展阅读
相关模式
模式10 替代访问者模式
目的
概述
访问者模式
函数式替代方案
范例代码:可扩展的Person
范例代码:可扩展的几何形状
讨论
延展阅读
相关模式
模式11 替代依赖注入
目的
概述
函数式替代方案
范例代码:收藏的视频
范例代码:测试桩
相关模式
函数式模式
简介
模式12 尾递归模式
目的
概述
范例代码:递归的“人”
讨论
相关模式
模式13 相互递归模式
目的
概述
别名
范例代码:物质的状态
讨论
相关模式
模式14 Filter-Map-Reduce模式
目的
概述
范例代码:折扣计算
讨论
相关模式
模式15 操作链模式
目的
概述
范例代码:函数调用链
范例代码:采用序列推导来完成链式操作
讨论
延展阅读
相关模式
模式16 函数生成器模式
目的
概述
范例代码:通过静态数据生成函数
通过其他函数来生成函数
讨论
相关模式
模式17 记忆模式
目的
概述
范例代码:简单缓存
讨论
模式18 惰性序列模式
目的
概述
范例代码:内建的惰性序列
范例代码:分页的数据响应
讨论
模式19 集中的可变性
目的
概述
范例代码:添加元素到索引序列
范例代码:事件流处理
讨论
模式20 自定义控制流
目的
概述
范例代码:三者选一
范例代码:平均时间
讨论
模式21 领域特定语言
目的
概述
范例代码:为shell而准备的DSL
相关模式
延展阅读
结束语
参考文献
看完了
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜