[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: New scoping rule for "repeat" and "continue" patch
- From: Chris Marrin <chris@...>
- Date: Tue, 04 Oct 2005 20:26:31 -0700
Rici Lake wrote:
...
Indeed it does. But in C, the following is illegal:
do {
int i = 1;
// ...
} while(i);
(Or, at least, it refers to a different 'i' than was declared inside the
loop.) So any 'continue' is in fact jumping to the end of the scope, and
then executing the test in the surrounding scope.
I'm not suggesting that it was a bad thing to change the scope of
'until': Diego has a good point about its utility. And Lua does not have
a 'continue' statement, so the discussion about what its semantics might
be is completely hypothetical, which doesn't make it less interesting :)
Not to mean any disrespect to the great designers of Lua, but the
designers of C certainly thought about this long and hard and made the
decision to keep it out of the inner scope, probably for exactly this
reason. So following that wisdom might be a good choice.
While Lua does not have this problem because it does not currently have
a continue statement, I think it would be tragic if this feature were
kept out of future revisions because of this choice.
I can make a good argument for keeping the control expression out of the
inner scope of repeat, in that the control expression of the while
statement is also out of this scope. So for consistency, and for the
future inclusion of the extremely important continue statement, I really
think repeat should changed back to the way it was!
Just my stinkin' opinion :-)
--
chris marrin ,""$, "As a general rule,don't solve puzzles
chris@marrin.com b` $ that open portals to Hell" ,,.
,.` ,b` ,` , 1$'
,|` mP ,` :$$' ,mm
,b" b" ,` ,mm m$$ ,m ,`P$$
m$` ,b` .` ,mm ,'|$P ,|"1$` ,b$P ,` :$1
b$` ,$: :,`` |$$ ,` $$` ,|` ,$$,,`"$$ .` :$|
b$| _m$`,:` :$1 ,` ,$Pm|` ` :$$,..;"' |$:
P$b, _;b$$b$1" |$$ ,` ,$$" ``' $$
```"```'" `"` `""` ""` ,P`