Implementing recursive lambda with MethodHandle

Joshua Bloch jjb at google.com
Mon Feb 22 10:38:37 PST 2010


Alex,

On Mon, Feb 22, 2010 at 10:11 AM, Alex Blewitt <alex.blewitt at gmail.com>wrote:

>
> I'm not sure why a temporary assignment to 'thisFn' is an better than using
> 'this' in place - on the other hand, if one wanted to, one could do both the
> above and the below.
>
>    #i(int i) {
>>       #int(int) thisFn = this;
>>       return i == 0 ? 1 : i * thisFn.(i - 1);
>>    };
>>
>>
It eliminates the circularity in the definition of the type of the lambda:
it's clearly #int(int). It's visual clutter, but at least it doesn't clutter
up the enclosing namespace.

            Josh


More information about the lambda-dev mailing list