It's an overstatement to say that forEachOrdered/foldLeft cannot exploit
parallelism. If I have a stream:
stream.parallel()
.map(e -> expensiveFn(e))
.forEachOrdered(e -> ...);
We still can (and do) perform the mapping in parallel even if we cannot
perform the folding step yet. See ForEachOps.ForEachOrderedTask.
On 8/13/2017 3:45 PM, Remi Forax wrote:
Hi Tagir,
foldLeft (and foldRight) were intentionally not included in the Stream API
because as you know, their semantics is too strong to be useful for parallel
streams.
regards,
Rémi
----- Mail original -----
De: "Tagir Valeev" <amae...@gmail.com>
À: "core-libs-dev" <core-libs-dev@openjdk.java.net>
Envoyé: Dimanche 13 Août 2017 15:27:36
Objet: RFR: JDK-8133680 add Stream.foldLeft() terminal operation
Please review the preliminary implementation for Stream foldLeft and
foldRight operations:
http://cr.openjdk.java.net/~tvaleev/webrev/8133680/r1/
This implementation has no tests yet. Before writing them I'd like to
be sure that this enhancement could be accepted in general (or
probably foldLeft is accepted and foldRight is not?) Could anybody
sponsor it when it will be complete?
Thank you in advance!
Tagir Valeev.