On 2011/10/02 9:51, Urabe Shyouhei wrote: > (10/01/2011 04:53 PM), Chuck Remes wrote: >> - Remove confusing proc/lambda/Proc differences > > proc is Proc and lambda is ->(){}. No confusion now. That's easy for people who know what a proc is, and what a lambda is. But that may not be everybody. A simplification in this area was on my wishlist, too. At the time, as far as I remember it, there were at least two axes on which these and simila constructs differed. One axis was the handling of parameters/attributes: strictly positional or with all kinds of bells and whistles (splats, defaults,...), and whether a mismatch between actual and formal attributes triggered an error or not. Another axis was what happened in the case of a return: Jump out of the construct only or also jump out of the surrounding method. There were also related differences for break and next. As far as I understand, there was quite a bit of work on the first axis. But if I look at the 1.8 and 1.9 Pickaxe books, the 1.8 book spends a bit less than 3 pages on Blocks, Closures, and Proc Objects, whereas the 1.9 book spends 4 pages on the same topic. Anyway, if we get to a point where we can say: proc is Proc and does ..., and lambda is ->(){} and does .... (where the '...' parts are extremely simple), then and only then can we say "No confusion now.". Regards, Martin.