From: Conrad Schneiker Date: 2000-10-15T07:40:01+09:00 Subject: [ruby-talk:5538] Re: Some newbye question -- involving block scoping. "Guy N. Hurst" wrote: > Yukihiro Matsumoto wrote: ... > > In message "[ruby-talk:5516] Re: Some newbye question" > > on 00/10/14, ts writes: > > ... > > |> (a) I don't like variable overriding, especially in declaration-less > > |> language like Ruby. > > |> > > |> (b) since blocks were introduced for iteration originally, I want > > |> any assignables can be block parameters. > > > > 3 possible solution in my mind for the future: > > > > (1) local variables in the block parameters be valid only in the > > surrounding block. I think Davide proposed this one. This > > violates (a), and introduces incompatibility (small?). This is > > not perfect since the problem remains for non parameter local > > variables. ... > I'm not an expert in this realm, but it seems to me that since this > is a scope issue, another scope designation is called for. > And to avoid proliferation of scope symbols, an existing one could > probably be used, such as the '@' used in objects and classes. > Or if there are conflicts, maybe '%' would be better. > > I personally think it would be worth it to eliminate the surprise > element that is in these multiple local scopes inside blocks etc. I certainly think this is a good goal (although I have no idea of the best way to do this for the long term). Another somewhat more general way to express this particular goal is that we would like to eliminate tricky forms of context-dependence. (Or in terms of Perl metaphors, we would like a chain guard on our "Swiss Army chainsaw". And we want to be the "duct tape of the Web", but unlike Perl, we don't want *both* sides of the duct tape to be sticky. :-) Conrad