lua-users home
lua-l archive

Re: continue/repeat...until false dichotomy

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


 > repeat
 > local t = 0
 > if cond then continue end
 > local t = 1
 > ...
 > until t == 0
 > 
 > Then the two t are actually different variables (in the current
 > implementation), and it's not clear to which incarnation the
 > comparison refers.
I'm quite alarmed by this problem.
I was shocked to discover that
 local t = 1
 repeat
 local t = t + 1
 print(t)
 -- the scope of the inner 't' should end here, but it doesn't
 until t == 1
loops forever printing 2. 
I would have expected that the condition in the 'until' is outside the
scope of the loop body, just like the condition in a 'while'.
In my mind, this is just a mistake in the language design.
Questions like this are why every few years I ask Roberto when we are
going to get a formal semantics for Lua :-)
Norman Ramsey

AltStyle によって変換されたページ (->オリジナル) /