On Sun, Nov 09 2014, Abhishek L wrote:

[...]

> Here x was a mutable variable, doing a similiar ML construct, ie
>
>      val x = ref 2
>      fun f y = !x + 2
>
>      f 10 ; evals to 12
>      x := 10
>      f 10 ; evals to 20
>
> So this becomes a problem of closures over mutable variables? ie every
> closure looks up the value of same variable, x which gets mutated
> around. WDYT?

[...]

So the explanation I got is that it binds the environment at definition
time but the environment means a mutable table of key value pairs. In
other words, the closure closes only over the name of the variable and
not the value at definition time. I don't really understand how useful
this is unless you have some kind of environment that you can't get to
(e.g. non local inside a function etc.). Also, and this is my real
question,

How is lexical scoping with a mutable environment different from dynamic
scoping?



-- 
Cordially,
Noufal
http://nibrahim.net.in
_______________________________________________
BangPypers mailing list
BangPypers@python.org
https://mail.python.org/mailman/listinfo/bangpypers

Reply via email to