java - DoubleFunction 的 Lambda

标签 java lambda functional-programming

以下片段来自 https://blogs.oracle.com/javamagazine/quiz-yourself-functional-interfaces-advanced?source=:em:nw:mt::RC_WWMK190726P00001:NSL400004372

DoubleStream ds = DoubleStream.of(1.0, 2.0, 3.0);
DoubleFunction<DoubleUnaryOperator> fun = a -> d -> d + a;
System.out.print(ds.map(fun.apply(1.0)).sum());

在我学习 lambda 的过程中,我理解了诸如 d -> d+a 甚至 (d, a) -> d+a
但是虽然知道函数的作用,但是还是搞不懂上面lambda的语法。
有人可以解释一下或提供一些教程的链接吗?
谢谢。

最佳答案

a -> d -> d + a;

相同
a -> (d -> d + a);

这是一个函数,对于 double a 返回一个函数,对于 double d 返回 a 的总和d.

有关函数的部分应用将多参数函数转换为多个单参数函数的更多详细信息,请参阅currying .

关于java - DoubleFunction 的 Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58520214/

相关文章:

java - guava Table vs 多个 HashMap 的效率

java - 为什么我的对象在 MouseMoved 上不移动?

Java流: sorting by ZoneDateTime field

java - 使用 lambda 返回列表中的匹配元素

linq - 将此 Linq 查询从查询​​语法转换为 lambda 表达式

c - 内存分配中的函数式编程案例

java - 无法从 Java 类中找到 groovy 类

java - 在java代码中使用EST时区时的DST

recursion - 为什么在 F# 中使用递归函数而不是 `while true do`?

Clojure - 返回闭包或部分应用函数更惯用?