logo
分类于: 编程语言 计算机基础

简介

Scala与Clojure函数式编程模式: Java虚拟机高效编程

Scala与Clojure函数式编程模式: Java虚拟机高效编程 7.2分

资源最后更新于 2020-03-29 03:14:06

作者:〔美〕 Michael Bevilacqua-Linn

译者:赵震一

出版社:出版社人民邮电出版社

出版日期:2015-08

ISBN:9787115388940

文件格式: pdf

标签: 计算机 函数式编程 Scala Clojure JVM FP

简介· · · · · ·

StackOverflow刚刚发布了2015开发者调查,最受程序员喜爱的开发语言中,Clojure和Scala分别位列第五和第六。排名第一的是Swift,而Swift相比原先的Objective-C最重要的优点之一,就是对函数式编程提供了更好的支持。同时,新一代分布式计算系统Spark不仅在实现中选择了Scala,其提供的首选编程语言也是Scala。所有迹象都显示,诞生50多年后,函数式编程却焕发了青春,越来越受到关注和青睐,从边缘地带步入了主流,除了Scala和Clojure这些新生函数式编程语言大行其道之外,Java等老牌面向对象的编程语言也开始支持匿名函数。函数式编程能简化开发过程,尤其是大型知识管理系统应用程序从中受益良多。本书向读者展示了如何采用函数式方案来替代或简化面向对象编程中使用的诸多通用模式,同时还介绍了一些在函数式世界中广泛使用的模式。如果你是一名Java程序员,希望了解函数式编程能为你的工作效率带来多大的提升,或者你是一名刚刚开始使用Scala和Clojure的新手,尚不能玩转函数式的问题解决方案,那么本书就是为你而准备的。作者简介:Michael Bevilacqua-Linn康卡斯特杰出工程师,现为该公司的新一代服务的电力基础设施构建分布式系统。他五年级的时候就拖着一台Apple II GS到自己班为同学们解释循环和变量。其博客地址为http://mblinn.com/。译者简介:赵震一一线攻城狮,曾涌入创业洪流,多年未有所成。现居杭州,就职于阿里巴巴。热爱技术,关注互联网与大数据。InfoQ社区编辑,闲暇译一些技术文章,译有《RESTful Web APIs中文版》。

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

  1. Scala与Clojure函数式编程模式:Java虚拟机高效编程
  2. 译者序
  3. 前言
  4. 本书组织结构
  5. 模式模板
  6. 目的
  7. 概述
  8. 别名
  9. 函数式替代方案
  10. 范例代码
  11. 讨论
  12. 延展阅读
  13. 相关模式
  14. 为什么选择Scala和Clojure
  15. 如何阅读本书
  16. 在线资源
  17. 致谢
  18. 模式和函数式编程
  19. 1.1 什么是函数式编程
  20. 1.2 模式词汇表
  21. 替代面向对象模式
  22. 函数式模式介绍
  23. TinyWeb:让模式协同工作
  24. 2.1 TinyWeb简介
  25. 2.2 采用Java来编写TinyWeb
  26. HttpRequest 和 HttpResponse
  27. 视图和策略模式
  28. 控制器和模板方法模式
  29. 过滤器和函数式接口
  30. 将所有组件拼装到一起
  31. 使用TinyWeb
  32. 2.3 采用Scala来编写TinyWeb
  33. 第一步:更换视图
  34. 第二步:对控制器的第一次改造
  35. 不可变的 HttpRequest 和 HttpResponse
  36. 将组件拼装到一起
  37. 使用Scala版本的TinyWeb
  38. 2.4 采用Clojure来编写TinyWeb
  39. Clojure简介
  40. Clojure中的控制器
  41. 数据map
  42. Clojure版本的视图
  43. 将所有组件拼装到一起
  44. 使用TinyWeb
  45. 替代面向对象模式
  46. 简介
  47. 模式1 替代函数式接口
  48. 目的
  49. 概述
  50. 别名
  51. 函数式替换方案
  52. 范例代码:匿名函数
  53. 范例代码:具名函数
  54. 讨论
  55. 延展阅读
  56. 相关模式
  57. 模式2 替代承载状态的函数式接口
  58. 目的
  59. 概述
  60. 别名
  61. 函数式替代方案
  62. 简单的代码:闭包
  63. 讨论
  64. 延展阅读
  65. 相关模式
  66. 模式3 替代命令模式
  67. 目的
  68. 概述
  69. 别名
  70. 函数式替代方案
  71. 范例代码:现金出纳机
  72. 讨论
  73. 延展阅读
  74. 相关模式
  75. 模式4 替代生成器模式来获得不可变对象
  76. 目的
  77. 概述
  78. 函数式替代方案
  79. 范例代码:不可变数据
  80. 讨论
  81. 延展阅读
  82. 相关模式
  83. 模式5 替代迭代器模式
  84. 目的
  85. 概述
  86. 别名
  87. 函数式替换方案
  88. 范例代码:高阶函数
  89. 范例代码:序列推导
  90. 讨论
  91. 延展阅读
  92. 相关模式
  93. 模式6 替代模板方法模式
  94. 目的
  95. 概述
  96. 函数式替代方案
  97. 范例代码:评分报表
  98. 讨论
  99. 延展阅读
  100. 相关模式
  101. 模式7 替代策略模式
  102. 目的
  103. 概述
  104. 别名
  105. 函数式替代方案
  106. 范例代码:人名校验
  107. 讨论
  108. 延展阅读
  109. 相关模式
  110. 模式8 替代空对象
  111. 目的
  112. 概述
  113. 函数式替代方案
  114. 范例代码:默认值
  115. 范例代码:从无到有
  116. 讨论
  117. 延展阅读
  118. 模式9 替代装饰器模式
  119. 目的
  120. 概述
  121. 别名
  122. 函数式替代方案
  123. 范例代码:日志计算器
  124. 延展阅读
  125. 相关模式
  126. 模式10 替代访问者模式
  127. 目的
  128. 概述
  129. 访问者模式
  130. 函数式替代方案
  131. 范例代码:可扩展的 Person
  132. 范例代码:可扩展的几何形状
  133. 讨论
  134. 延展阅读
  135. 相关模式
  136. 模式11 替代依赖注入
  137. 目的
  138. 概述
  139. 函数式替代方案
  140. 范例代码:收藏的视频
  141. 范例代码:测试桩
  142. 相关模式
  143. 函数式模式
  144. 简介
  145. 模式12 尾递归模式
  146. 目的
  147. 概述
  148. 范例代码:递归的“人”
  149. 讨论
  150. 相关模式
  151. 模式13 相互递归模式
  152. 目的
  153. 概述
  154. 别名
  155. 范例代码:物质的状态
  156. 讨论
  157. 相关模式
  158. 模式14 Filter-Map-Reduce模式
  159. 目的
  160. 概述
  161. 范例代码:折扣计算
  162. 讨论
  163. 相关模式
  164. 模式15 操作链模式
  165. 目的
  166. 概述
  167. 范例代码:函数调用链
  168. 范例代码:采用序列推导来完成链式操作
  169. 讨论
  170. 延展阅读
  171. 相关模式
  172. 模式16 函数生成器模式
  173. 目的
  174. 概述
  175. 范例代码:通过静态数据生成函数
  176. 通过其他函数来生成函数
  177. 讨论
  178. 相关模式
  179. 模式17 记忆模式
  180. 目的
  181. 概述
  182. 范例代码:简单缓存
  183. 讨论
  184. 模式18 惰性序列模式
  185. 目的
  186. 概述
  187. 范例代码:内建的惰性序列
  188. 范例代码:分页的数据响应
  189. 讨论
  190. 模式19 集中的可变性
  191. 目的
  192. 概述
  193. 范例代码:添加元素到索引序列
  194. 范例代码:事件流处理
  195. 讨论
  196. 模式20 自定义控制流
  197. 目的
  198. 概述
  199. 范例代码:三者选一
  200. 范例代码:平均时间
  201. 讨论
  202. 模式21 领域特定语言
  203. 目的
  204. 概述
  205. 范例代码:为shell而准备的DSL
  206. 相关模式
  207. 延展阅读
  208. 结束语
  209. 参考文献
  210. 看完了