Syntax decision
Henri Gerrits
henrigerrits at yahoo.com
Wed Sep 28 09:13:00 PDT 2011
I meant "doesn't"
----- Original Message -----
> From: Henri Gerrits <henrigerrits at yahoo.com>
> To: Stephen Colebourne <scolebourne at joda.org>; lambda-dev <lambda-dev at openjdk.java.net>
> Cc:
> Sent: Wednesday, September 28, 2011 11:57 AM
> Subject: Re: Syntax decision
>
> Of course there is also the bitwise OR operator to consider.
> I think the parser's lookahead should be able to handle these potential
> syntactical complications.
>
> But do you really NEED a no-arg placeholder?
>
> BTW: the C# syntax posted by Brian originally does seem to allow the
> '()' syntax either:
>
>> > The C# syntax is:
>> >
>> > lambda = ArgList Arrow Body
>> > ArgList = Identifier
>> > | "(" Identifier [ ","
> Identifier ]* ")"
>> > | "(" Type Identifier [ "," Type
> Identifier ]* ")"
>> > Body = Expression
>> > | "{" [ Statement ";" ]+
> "}"
>
> I must add I'm new to this discussion.
>
> Henri
>
> ----- Original Message -----
>> From: Stephen Colebourne <scolebourne at joda.org>
>> To: lambda-dev <lambda-dev at openjdk.java.net>
>> Cc:
>> Sent: Wednesday, September 28, 2011 11:32 AM
>> Subject: Re: Syntax decision
>>
>> On 28 September 2011 16:24, Henri Gerrits <henrigerrits at yahoo.com>
> wrote:
>>> Since the cast syntax can't be touched, one way out could be to
> change
>> the arg delimiters for the lambda, e.g.;
>>>
>>> |x, y| -> x + y;
>>>
>>> Personally, I find this a bit more readable when the lambda is
> provided as
>> an argument to a method or constructor:
>>>
>>> c.sort(|x, y| -> x > y);
>>>
>>> instead of:
>>>
>>> c.sort((x, y) -> x > y);
>>>
>>> But I'm sure you will already have considered (and rejected)
>> '|'.
>>
>> Since the decision is to go away from familiar things in Java (as
>> opposed to #() {stmt}), I might also favour:
>> |x, y| -> x + y
>>
>> It is a lot clearer in many ways in complicated situations, and would
>> be beter for the eye in finding the target of "return"
> statements.
>>
>> I don't know without looking closer whether this is sufficiently
>> distinguishable from OR however:
>> || -> expr
>>
>> Stephen
>>
>
More information about the lambda-dev
mailing list