Function parameter order
David Holmes
david.holmes at oracle.com
Thu Nov 8 19:20:53 PST 2012
On 9/11/2012 1:50 AM, Brian Goetz wrote:
>> I don't particularly like MapperInt either but I'll put up with it to
>> keep the type arguments in the expected order. (Though MapperToInt is
>> undoubtedly better still).
>
> And what about when more than one parameter is being specialized? The
> scheme should work for that too. (As Doug points out, this limits us to
> specializing an initial segment of parameters and not a single
> non-leading one.)
I don't understand your point here. I didn't invent a scheme, I used
your scheme. Your scheme says that the placement of the specialization
indicates which type parameter is being specialized. I simply stated
that it is better to have the Return Type type parameter be last. This
scheme handles first and last parameters easily and doesn't readily
handle anything else.
>> These specializations are a workaround for a lack of decent primitive
>> type support, so their naming should not be the major decision criteria
>> when designing the API.
>
> I think this would be abdicating our responsibility. We're the ones
> foisting this nominal scheme on the users. We have good reasons for
> doing so (e.g., structural function types interact awfully with erasure
> and maybe also with boxing), but since we have to replace it with
> something, it should be as good as we can make it. And that means
> including the specializations as first-class considerations in the
> design discussion, not nailing them on afterwards.
I said "not the major decision criteria". I did not say it was not
first-class, nor that it should nailed on afterwards. But a stylistic
preference to IntMapper over MapperInt is not reason enough to change
common usage and put the Return Type parameter first.
David
More information about the lambda-libs-spec-observers
mailing list