【发布时间】:2019-02-19 03:40:48
【问题描述】:
我知道java流,并尝试实现map,filter,fold(以自定义函数作为参数),严格和惰性评估方式。
但是我无法在 java 中实现 flatmap 的惰性实现。 法线贴图、过滤器、折叠只是在主迭代器(如果它的列表)上运行的组合函数,如果传入值为 null,则丢弃函数的应用。
然而 flatMap 输入函数会产生另一个需要展平的列表(流),
java 10 中的lazy flatMap 是如何实现的?有没有关于算法的文档?
谢谢。
【问题讨论】:
-
此已已修复,但您的问题是什么?一般如何实现惰性操作?只需重复调用
tryAdvance直到得到结果,而不是运行forEachRemaining。实际的问题应该是,为什么他们在第一个版本中没有正确地做到这一点。 This alternative implementation 在 Java 10 之前就已经存在了。 -
知道了,谢谢,我在看 fold 而不是 findFirst 类似的,这是懒惰的谢谢
标签: java functional-programming