flatMap signature (original) (raw)
Boaz Nahum boaznahum at gmail.com
Tue Apr 2 05:44:34 PDT 2013
- Previous message: flatMap signature
- Next message: flatMap signature
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Stream:
As Brian correct me: Stream flatMap(Function<? super T, ? extends Stream<? extends R>> mapper);
instead of: Stream flatMap(Function<T, Stream<? extends R>> mapper);
T reduce(T identity, BinaryOperator accumulator); and Optional reduce(BinaryOperator accumulator);
Can't be fixed because they used 'BinaryOperator', But if 'BiFunction' is used then we have more flexibility
U reduce(U identity, BiFunction<? super U, ? super T, ? extends U> accumulator, BinaryOperator combiner)
Instead of:
U reduce(U identity, BiFunction<U, ? super T, U> accumulator, BinaryOperator combiner);
Same comment regarding 'BinaryOperator'
R collect(Supplier resultFactory, BiConsumer<? super R, ? super T> accumulator, BiConsumer<? super R, ? super R> combiner)
Instead of:
<R> R collect(Supplier<R> resultFactory,
BiConsumer<R, ? super T> accumulator,
BiConsumer<R, R> combiner);
I tested all my suggestions with examples and pseudo implementation, example:
default U reduce(U identity, BiFunction<? super U, ? super T, ? extends U> accumulator, BinaryOperator combiner) {
Collection<T> _this = ....
U result = identity;
for (T element : _this)
result = accumulator.apply(result, element);
return combiner.apply(identity, result);
}
If you find my comments useful, I will be more than glad to continue on other API.
On Mon, Apr 1, 2013 at 1:32 PM, Remi Forax <forax at univ-mlv.fr> wrote:
On 03/31/2013 05:10 PM, Boaz Nahum wrote: > I have some problems when compiling with flatMap, > > Maybe the signature should be: > > Stream flatMap(Function<? super T, Stream<? extends R>> mapper); > > Instead of: > > Stream flatMap(Function<T, Stream<? extends R>> mapper); >
yes, probably, I will do a pass on the whole API to fix all wildcards, if you or anybody on this list want to help me, it would be great. cheers, Rémi
- Previous message: flatMap signature
- Next message: flatMap signature
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]