On Oct 21, 10:31 pm, Dave Thomas <d... / pragprog.com> wrote: > On Oct 21, 2008, at 8:39 PM, Trans wrote: > > > It something that will take getting used to, but I think matz has > > gotten this right actually. > > Then deprecate lambda.©ö Because having two totally disjoint ways of > doing the same thing makes the language diffuse, and can only be a > source of confusion. This is a lot worse than having aliased methods, > where the syntax is the same and the names are different. The two > syntaxes here are totally alien. Choose one, and lose the other, I say. I see what you're saying, and it's a good point. But I think perhaps the two serve different purposes, sort of along the same lines that { }'s are usually used for one-liner blocks and do..end for multiple lines. We don't see a lot of this in Ruby: foo(lambda{|x| x.upcase }) On the whole, it's too verbose. But I think we would see a little more of it if we could do: foo(->x{x.upcase}) I know, it's not the most beautiful syntax in the world. I think that mainly b/c the '->' looks like an arrow. If we could use the actual ¥ë, I don't think there would be nearly as much protest. foo(¥ëx{x.upcase}) T.