【发布时间】:2017-07-30 09:31:06
【问题描述】:
我对函数式编程世界很陌生。尝试 Java 8 附带的新函数式编程。最近我开始了解柯里化和方法组合。理解使用 java 进行函数式编程的真正本质非常困难,现在我有几个问题,但是,在提出所有这些问题之前,我已经在 python 上尝试过同样的问题,现在对一些核心概念有点熟悉。
1.在java中Currying和方法组合有什么不同其实我完全看不出有什么区别,尤其是看了这篇文章https://dzone.com/articles/higher-order-functions
2.作为一个程序员(从我的 java 编程角度来看)为什么我更喜欢柯里化。例如我为什么要这样做
f(x){ return g(y) } 而不是 f(x,y){ return x(y)} 有什么区别?
【问题讨论】:
-
Java 8 只有函数式编程通常允许的一小部分,因此可能很难看到好处。
-
@ThorbjørnRavnAndersen 和一般情况下?不考虑 java 我的第二个问题的答案是什么。我真的很想知道
-
那篇文章是错误的。正如@Holger在accepted answer's comments中指出的那样,文章作者所说的currying其实是偏函数应用,也可以说他是绑定第一个或第二个参数。
-
@FedericoPeraltaSchaffner 我明白你的意思,现在我更困惑了。
标签: java lambda functional-programming java-8 currying