--8323328-1099401653-11235006900453
Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-1099401653-1123500690=:20453"

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323328-1099401653-11235006900453
Content-Type: TEXT/PLAIN; charset=X-UNKNOWN; format=flowed
Content-Transfer-Encoding: QUOTED-PRINTABLE

Hi --

On Mon, 8 Aug 2005, [ISO-8859-1] Florian Growrote:

> Yukihiro Matsumoto wrote:
>
>> |Should be okay as long as it isn't used as a method name. The 1.9 () on 
>> |local variables change was undone after all, right?
>> 
>> Right.  But adding a new reserved word makes all programs using that
>> word as a local variable invalid.
>
> I'm really not sure if I see the problem with this.
>
> Here's my proposal:
>
> * introduce lambda as a semi-keyword
> * if used as "obj.lambda" it is a method call
> * if used as "lambda (" or "lambda {" it is a keyword
> * else it is a local variable reference
>
> Where "lambda" can also be replaced with "fun", but I think using lambda 
> actually makes collisions less likely to happen. (Because somebody might have 
> done  def fun(a) puts a end; fun() {}  instead of  self.fun() {})
>
> I think this keeps the risk of incompatibility quite low, but I might be 
> overseeing something. Or is the above proposal too hard to implement?

It seems awfully messy.  You'd have to do "self.lambda(args)" to make
it not a keyword if self had a lambda method.  And the whole thing
would be "for historical reasons"....

I thought it was OK for things to break in 2.0, since some things are
breaking anyway.


David

-- 
David A. Black
dblack / wobblini.net
--8323328-1099401653-11235006900453--
--8323328-1099401653-11235006900453--