On 22 May 2007, at 17:03, Key Bern wrote:

> core syntax     vs      syntactic sugar
> -----------             ---------------
> 4.+(12)                 4 + 12
> array.[ ](13)          array[13]
> persoon1.==(persoon2)  persoon1 == persoon2
> if not                  unless
> Proc.new          lambda
>
> Aren't the things from to right column preprocessed into the left
> column?

'unless' is a full 'reserved word' in the parser just like 'if' and  
'not' so I don't think it's really correct to say it is being  
preprocessed into them. Likewise operators such as '+' and '==' are  
defined in parse.y. lambda and Proc.new are not identical. The  
behaviour of lambda is defined in eval.c.

Alex Gutteridge

Bioinformatics Center
Kyoto University