From: Sean Russell Date: 2001-06-02T02:37:44+09:00 Subject: [ruby-talk:16145] Re: Block arguments vs method arguments -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Je jxauxdo 31 Majo 2001 23:31, vi skribis: > 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. Yes. The only way this would be a Good Thing would be if the scoping rules of |...| were changed, potentially breaking old code. I still think that { | localvar, :upscopevar | } would be the best syntax, even though it might break old code. You don't even have to use ':'; I don't care if the symbol is '^' or something else. > (b) it's orthogonal, but makes things complex. I don't think that the scoping rule mentioned above would be complex; it would be complex if ':var' were local scope and 'var' were parent scope. I actually think that using { | local, :up | } is less complex than { | up | < local > } I just really, really, really dislike the direction this second example leads us in. > (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. Unfortunately, I think the cleanest solution is to break compatibility. Failing that, don't solve the problem. Leave things the way they are. That's my vote. > (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. Perhaps you are right. I expect that, once you set things up so that you can't mix the roles, people will begin complaining about needing to. === SER Deutsch|Esperanto|Francaise|Linux|Java|Ruby|Aikido|Dirigibles|GPG === http://www.germane-software.com/~ser jabber.com:ser ICQ:83578737 "What are politicians going to tell people when the Constitution is gone and we still have a drug problem?" -- William Simpson, A.C.L.U. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.2 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE7F9LMP0KxygnleI8RAtmsAJ96OrTKIVmlbeUTSs5RfTTpMMf4ZQCgjydl neUN5CSldJbruMK6l4a+wr0= =BPsk -----END PGP SIGNATURE-----