[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Making Lua lexically scoped (was: Re: Proper tail recursion)
- From: ramsdell@... (John D. Ramsdell)
- Date: 27 Jul 2001 13:53:08 -0400
"Nick Trout" <nick@videosystem.co.uk> writes:
> Does that mean that Python (2.2) is not lexically scoped either
> because it also forces a closure? (but can look right to the outer
> level) http://python.sourceforge.net/peps/pep-0227.html
I'm quite puzzled by the description of Python's new scoping rule, but
here is my best guess as to what it is saying: A local variable that
is referenced by one or more functions defined within the block in
which the local variable is defined cannot be changed. In Lua terms:
the following code is illegal because local a cannot be modified since
it is referenced by the function bound to foo:
do
local a = 5
local foo = function() print(a) end
a = 10 -- Illegal under Python rules!
foo()
end
Even though this rule is more restrictive that Lua's rule, Python DOES
provide lexical scoping as functions defined within a block have
access to all the bindings made in the block.
John