Java函数式编程

Java函数式编程

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
8.223 评价豆瓣读书
春暖花开季 恰是读书时满500减300、满200减120、满100减60活动详情

作品简介

《Java函数式编程》并不是一本关于Java的书,而是一本关于函数式编程的书。作者由浅入深地介绍了函数式编程的思维方式,并引导读者通过易于掌握的例子、练习和图表来学习和巩固函数式编程的基本原则和最佳实践。读者甚至可以在阅读的同时编写出自己的函数式类库!

(法)皮埃尔-伊夫斯·索蒙特(Pierre-Yves Saumont)是一名拥有三十年设计和构建企业级软件的Java开发者。他目前是Alcatel-Lucent Submarine Networks公司的一名软件研发工程师。

作品目录

  1. 译者序
  2. 译者简介
  3. 为什么要函数式编程
  4. 序言
  5. 致谢
  6. 关于本书
  7. 1 什么是函数式编程
  8. 1.1 函数式编程是什么
  9. 1.2 编写没有副作用的程序
  10. 1.3 引用透明如何让程序更安全
  11. 1.4 函数式编程的优势
  12. 1.5 用代换模型来推断程序
  13. 1.6 将函数式原则应用于一个简单的例子
  14. 1.7 抽象到极致
  15. 1.8 总结
  16. 2 在Java中使用函数
  17. 2.1 什么是函数
  18. 2.2 Java中的函数
  19. 2.3 高级函数特性
  20. 2.4 Java 8的函数式接口
  21. 2.5 调试lambda
  22. 2.6 总结
  23. 3 让Java更加函数式
  24. 3.1 使标准控制结构具有函数式风格
  25. 3.2 抽象控制结构
  26. 3.3 抽象迭代
  27. 3.4 使用正确的类型
  28. 3.5 总结
  29. 4 递归、反递归和记忆化
  30. 4.1 理解反递归和递归
  31. 4.2 使用递归函数
  32. 4.3 复合大量函数
  33. 4.4 使用记忆化
  34. 4.5 总结
  35. 5 用列表处理数据
  36. 5.1 如何对数据集合进行分类
  37. 5.2 一个不可变、持久化的单链表实现
  38. 5.3 在列表操作中共享数据
  39. 5.4 使用高阶函数递归折叠列表
  40. 5.5 总结
  41. 6 处理可选数据
  42. 6.1 空指针的问题
  43. 6.2 空引用的替代方案
  44. 6.3 Option数据类型
  45. 6.4 Option的其他实用程序
  46. 6.5 如何及何时使用Option
  47. 6.6 总结
  48. 7 处理错误和异常
  49. 7.1 待解决的问题
  50. 7.2 Either类型
  51. 7.3 Result类型
  52. 7.4 Result模式
  53. 7.5 Result处理进阶
  54. 7.6 总结
  55. 8 列表处理进阶
  56. 8.1 length的问题
  57. 8.2 复合List和Result
  58. 8.3 抽象常见列表用例
  59. 8.4 自动并行处理列表
  60. 8.5 总结
  61. 9 使用惰性
  62. 9.1 理解严格和惰性
  63. 9.2 实现惰性
  64. 9.3 只有惰性才能做到的事
  65. 9.4 为何不要用Java 8中的Stream
  66. 9.5 创建一个惰性列表数据结构
  67. 9.6 惰性的真正本质
  68. 9.7 处理无限流
  69. 9.8 避免null引用和可变字段
  70. 9.9 总结
  71. 10 用树进行更多数据处理
  72. 10.1 二叉树
  73. 10.2 实现二叉搜索树
  74. 10.3 从树中删除元素
  75. 10.4 合并任意树
  76. 10.5 折叠树
  77. 10.6 映射树
  78. 10.7 平衡树
  79. 10.8 总结
  80. 11 用高级树来解决真实问题
  81. 11.1 性能更好且栈安全的自平衡树
  82. 11.2 红黑树的用例:map
  83. 11.3 实现函数式优先队列
  84. 11.4 元素不可比较的优先队列
  85. 11.5 总结
  86. 12 用函数式的方式处理状态改变
  87. 12.1 一个函数式的随机数发生器
  88. 12.2 处理状态的通用API
  89. 12.3 通用状态处理
  90. 12.4 总结
  91. 13 函数式输入/输出
  92. 13.1 在上下文中应用作用
  93. 13.2 读取数据
  94. 13.3 真正的函数式输入/输出
  95. 13.4 总结
  96. 14 通过actor共享可变状态
  97. 14.1 actor模型
  98. 14.2 构建actor框架
  99. 14.3 开始使用actor
  100. 14.4 总结
  101. 15 以函数式的方式解决常见问题
  102. 15.1 使用断言来校验数据
  103. 15.2 从文件中读取属性
  104. 15.3 转换命令式程序:XML读取器
  105. 15.4 总结
  106. 附录A 使用Java 8的函数式特性
  107. 附录B Monad
  108. 附录C 敢问路在何方
载入中

大家都喜欢