Mismatch between the order of the type variable and the order of the SAM method formal parameters

Rémi Forax forax at univ-mlv.fr
Thu Sep 15 09:00:12 PDT 2011


On 09/15/2011 05:56 PM, Brian Goetz wrote:
> In general, it is best if methods that have a single lambda parameter have the lambda parameter last.

I agree for Iterable.reduce, but here it's Reducer.reduce().

Rémi

>
>
> On Sep 15, 2011, at 12:30 AM, Rémi Forax wrote:
>
>> Hi all,
>>
>> Here is the declaration of a Reducer:
>>
>>    interface Reducer<T, U>  {
>>        U reduce(U base, T t);
>>    }
>>
>> and how to use it:
>>
>>    Reducer<String, Integer>  reducer = (Integer i, String s) ->  i +
>> s.length();
>>
>> As you see the order of the type argument<String, Integer>  is not
>> the same as the order of the type of the formal parameter of the lambda
>> (Integer i, String s).
>> I think it will be simpler if the signature of reduce() was changed to
>> swap the two
>> formal parameters.
>>
>> Rémi
>>
>>



More information about the lambda-dev mailing list