Collectors update (original) (raw)
Kevin Bourrillion kevinb at google.com
Thu Jan 31 15:02:14 PST 2013
- Previous message: Collectors update
- Next message: Collectors update
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I'm going to have to frequently apologize for the circular nature of many of my comments. I wish that I'd always had time to follow the discussions from the start.
On Thu, Jan 31, 2013 at 2:37 PM, Brian Goetz <brian.goetz at oracle.com> wrote:
Just throwing this out there: Have we already strongly considered the
heretical idea of just naming it reduce()?
Yes. There are a few reasons we leaned towards a different name here. 1. (Pedagogical): The mutable reduce-like/fold-like methods have a different feel than the more functional analogues.
Do they truly, from the consuming perspective? I'm not sure.
2. (Practical): Overloading methods that take the same-shape lambdas causes use-site ambiguity problems. Since there are reduce forms that look suspiciously like collect forms, this was an issue.
It's distinguished from the others by the type it takes (and that's not a lambda-able type so no worries on that front).
No, because there's the multi-arg collect() form. Which is not only useful (collect(ArrayList::new, ArrayList::add, ArrayList::addAll)) but also usefully pedagogically (in that the single-arg collect then becomes clearly a generalization of the three-arg one.)
I strongly question the idea that that three-arg collect() method is helping anyone pedagogically. I've come across it many times and even I don't have the patience to sit down and try to puzzle out what it does and why I need it. (That's my reaction to probably 50% of the API, btw.) Why is it a collect() method instead of just another way to get a Collector?
If we were uncomfortable calling the type accepted Reducer, perhaps
there's... MutatingReducer. Bleh.
We had that once! MutableReduce, it was. Though mutableReduceUnordered is a mouthful.
And again, I'm not sure that the extra word is needed from the consumer's perspective; more for the implementor (of the thing now called Collector).
-- Kevin Bourrillion | Java Librarian | Google, Inc. | kevinb at google.com
- Previous message: Collectors update
- Next message: Collectors update
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the lambda-libs-spec-observers mailing list