#python #sicp
two key advantages of lexical scoping in Python.
- The names of a local function do not interfere with names external to the
function in which it is defined, because the local function name will be bound
in the current local environment in which it was defined, rather than the
global environment.
- A local function can access the environment of the enclosing function,
because the body of the local function is evaluated in an environment that
extends the evaluation environment in which it was defined.
If you want to change selection, open document below and click on "Move attachment"
1.6 Higher-Order Functions name finds the
first value bound to that name in the current environment. Python checks first
in the sqrt_update frame -- no a exists. Python checks next in the
parent frame, f1 , and finds a binding for a to 256.
Hence, we realize <span>two key advantages of lexical scoping in Python.
The names of a local function do not interfere with names external to the
function in which it is defined, because the local function name will be bound
in the current local environment in which it was defined, rather than the
global environment. A local function can access the environment of the enclosing function,
because the body of the local function is evaluated in an environment that
extends the evaluation environment in which it was defined.
The sqrt_update function carries with it some data: the value for a
referenced in the environment in which it was defined. Because they "enclose"
information in this way Summary
status | not read | | reprioritisations | |
---|
last reprioritisation on | | | suggested re-reading day | |
---|
started reading on | | | finished reading on | |
---|
Details