Lambda Parameters of Unknown Arity

Remi Forax forax at univ-mlv.fr
Mon Jan 7 10:05:25 PST 2013


On 01/07/2013 07:01 PM, Brian Goetz wrote:
> JEP 118 is simply about reifying some additional information from the 
> source file in the class file, which currently gets tossed by the 
> compiler.

so the information will be available because stored in the classfile but 
there will be not reflection method to access them ?

Rémi

>
> On 1/7/2013 12:48 PM, Remi Forax wrote:
>> On 01/07/2013 06:22 PM, Brian Goetz wrote:
>>> This problem is not specific to lambda, of course; we have this problem
>>> with regular methods too.
>>
>> Is not JEP 118 solve that issue ?
>> http://openjdk.java.net/jeps/118
>>
>> Rémi
>>
>>>
>>> On 1/7/2013 11:51 AM, Beran, Sam E wrote:
>>>> With the various functional interfaces in project lambda, it ends 
>>>> up being very difficult to work with functional interfaces of 
>>>> unknown arity.
>>>>
>>>> One example where this would be very useful is a web routing API, 
>>>> such as Sinatra in Ruby. We would want to bind multiple parameters, 
>>>> based on their name or position:
>>>>
>>>>
>>>>        GET("/people/{id}", Long id -> {
>>>>             // perform request
>>>>        }
>>>>
>>>>
>>>> As you can see, this would be a very nice api, but is very tricky 
>>>> to implement, because you must create a GET method with a new 
>>>> functional interface for each arity of method you'd like to accept. 
>>>> This leads to an ugly explosion of methods on the class. Here is an 
>>>> example: https://gist.github.com/4277292#file-metafunction
>>>>
>>>> Has there been any thought given to something like a MetaFunction 
>>>> class, which could be invoked dynamically via varargs? Ideally, my 
>>>> GET method above, would have the following signature:
>>>>
>>>>
>>>>        void GET(String route, MetaFunction handler) {
>>>>             //set up route here
>>>>        }
>>>>
>>>> This would be useful for many different libraries, and would be 
>>>> great to have first class support in the language for it! Apologies 
>>>> if this has been discussed before, I'm fairly new to the list.
>>>>
>>>> Thanks,
>>>> Sam
>>>>
>>
>>



More information about the lambda-dev mailing list