我正在一个大型的 Java 系统程序员团队中工作。库 LamdbaJ 在工作库中,但许多开发人员对函数式编程的好处持怀疑态度。
(我的背景是我是 Clojure 的忠实粉丝)。
我想阐明高阶函数相对于 Java 习语的好处。
想到的两个是:
- 功能组合(可以将它们组合在一起)
- 作为值的函数(你可以用值替换一个函数,它的工作原理是一样的)
但是,当我将该map
操作与简单地使用 Java 中的遍历列表进行比较时for (x : y)
- 函数组合和函数作为值似乎对代码的冗长或健壮性没有太大的影响。
我想阐明一些原因(在这种环境下)为什么功能方法是相似的。
我的问题是:在 Java 中,高阶函数(通过 lambdaj)超过 for (x:y) 循环的原因是什么?
假设:
- 由于 Websphere 限制而运行 Java 7。