From: matz@... (Yukihiro Matsumoto) Date: 2001-06-01T15:31:40+09:00 Subject: [ruby-talk:16120] Re: Block arguments vs method arguments Hi, In message "[ruby-talk:16096] Re: Block arguments vs method arguments" on 01/06/01, Sean Russell writes: |1) There are better (IMHO) solutions for the problem. I, personally, liked |the earlier suggestion of defining scope with { |:var| ... }, and I'm not |sure whatever happened to this recommendation. I don't think it's better, because (a) it's not compatible. depending on how : works, but if variables without : work as they are now, it's still error prone. And if you choose the way Hal wants in [ruby-talk:16118], it will break too many programs. (b) it's orthogonal, but makes things complex. it's my personal observation. I don't mean "<...>" is the best. It's uglier. But it's compatible and easy-to-use. So, in conclusion, what I want is something: (1) fairly compatible; at least 99.5% of current Ruby programs should run unchanged. Considering number of Ruby programs all over the world, 0.5% might be too big. (2) natural; what we want is NOT orthogonality, but naturalness. From my observation, block parameters has two major roles, iteration variables and Proc's formal arguments. Current behavior focuses too much on the former. We'd better rescue the latter too. That's why I'm thinking of "<...>", which gives distinct notation for each major role. Ithink we don't need to mix these two roles. (3) good looking; as long as it satisfies the above two. "<...>" satisfies the first two. There might be better idea. I'm not in a hurry, alway seeking better idea. matz.