--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--