Survey on map/flatMap disambiguation

Brian Goetz brian.goetz at oracle.com
Thu Mar 14 10:04:47 PDT 2013


The survey is closed, results are here:
 
https://www.surveymonkey.com/sr.aspx?sm=9UyN8RRvMX8BnpTdd4rYgDlXU9uUVALNDjNn_2fY2e9_2fo_3d

The sense of the EG was strongly in favor of disambiguating both map and 
flatMap; several argued that they liked the "less magic" aspect of it, 
and the explicitness of where we go from reference to primitive streams 
and back.

This does create a possibility for performance bugs, where users do:

   stuff.map(Foo::size).reduce(0, Integer::sum)

instead of

   stuff.mapToInt(Foo::size).reduce(0, Integer::sum)

Both will now compile, but the former will be boxed and the latter won't 
be.  The previous status quo saved users from themselves in this case.

Will make the following changes:

  Stream.map -> {map,mapTo{Int,Long,Double}}
  Stream.flatMap -> {flatMap,flatMapTo{Int,Long,Double}}
  {Int,Long,Double}Stream.map -> map,mapToObj


On 3/10/2013 7:51 PM, Brian Goetz wrote:
> I've posted a survey for the EG at:
>
>    https://www.surveymonkey.com/s/NT5DW7G
>
> where people can express their opinion on the issue of flatMap
> disambiguation (see thread entitled "flatMap ambiguity").
>
> The password has been communicated directly to the EG; contact me if you
> didn't get it.
>
> Usual survey rules: enter your name with your response, all results will
> be made public after the survey closes.  I'll set a closing time of 6PM
> PT Wednesday of this week.


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