Bikeshed opportunity: filter/map/reduce naming
Doug Lea
dl at cs.oswego.edu
Fri Nov 30 16:54:43 PST 2012
On 11/30/12 18:27, Brian Goetz wrote:
> [ Second try, hopefully right list this time ]
>
> Hey, kids, its bikeshed time again!
>
> The topic today is: filter, map, reduce. Should they be called something else?
>
> (No, Don, we're not going with the Dr. Seuss names. :)
>
> But, people have complained about filter because they can't tell whether we are
> filtering OUT the elements matching the predicate, or including them. Some of
> these people have suggested "where(Predicate)" as an alternative. Which seems
> OK to me.
>
"select" is the most classic name. Especially for a database company :-)
Also "selectAny" etc.
> Others find "map" too math-y. (The alternatives I can think of are also math-y;
> project, transform, apply).
Do they think that "java.util.Set" is too mathy?
>
> Further, "reduce" and "fold" are unfamiliar to many Java developers. The .NET
> folks went with "aggregate" to describe their reduction/folding operations.
>
Stick with "reduce". Nothing else means the same thing with such clarity.
"aggregate" is crummy because it is a noun and verb.
"fold" is also crummy because it has too many slightly different
definitions out there.
-Doug
More information about the lambda-libs-spec-observers
mailing list