flatMap (was: Updated Java 8 Stream examples in GS Collections Kata)

Paul Sandoz paul.sandoz at oracle.com
Wed Nov 14 01:21:42 PST 2012


On Nov 13, 2012, at 4:42 PM, Brian Goetz <brian.goetz at Oracle.COM> wrote:

>> The things I found awkward using in the kata were flatMap
> 
> This is a complaint we received over and over again in the "Hack Day" sessions -- it is pretty clear we are not there yet on flatMap.
> 
> 1.  It is not obvious flatMap is the best name, as it sets expectations for Scala users that will not be met.  Perhaps mapMulti?  explode?
> 

I would like to, but obviously cannot, call it "map*" to signify zero or more.

If there were static helper methods available for use in conjunction with flatMap that might help.

public class Yields {
  public static <T, R> FlatMapper<Collection<R>, R> fromCollection((Mapper<T, Collection<R>> m) { ... } 
}

...flatMap(Yields.fromCollection(Customer::getName))...

Perhaps a bit verbose. The connection to the static methods may not be obvious to developers.

If/when there are static methods supported on interfaces they could be declared in Stream.

Paul.



More information about the lambda-libs-spec-observers mailing list