From: Navindra Umanee Date: 2005-03-20T04:05:21+09:00 Subject: Re: Paul Graham recommends Ruby Christian Neukirchen wrote: > > Ruby blocks are just syntactic sugar for a special-case lambda. Ruby > > Care to elaborate? What's lacking? Yeah, sorry for being unclear. I was referring to higher-order functions i.e. Ruby blocks allow you to pass one anonymous lambda to a higher-order function with convenient syntax... for more than that it gets less convenient. > > doesn't support generic lambda half as cleanly, as say, Scheme. What > > You cannot do lambda{|x|x*2}(2), yes. Yup, and for calling functions objects in general. > Python's lambda was broken anyway (only one expression allowed) and > the "closures" didn't seem to deserve that name from what I recall. > Still, in some cases it can't be easily removed (e.g. GUI callbacks) > without losing functionality. But IANAP. Agreed. IANAP either. > I don't care what methods Guido drops and whatnot. After all, you > still can write your own map, filter and reduce. But when you drop > lambdas and any way to closure (from what I have read, inner functions > can't access outer variables), it's more than a dumb move IMO. Again, I don't have that detailed knowledge about Python, but Guido says: "also, there is a widespread misunderstanding that lambda can do things that a nested function can't -- I still recall Laura Creighton's Aha!-erlebnis after I showed her there was no difference!" So, I presume he has his bases covered. Cheers, Navin.