Hello,

I was wondering if symbol resolution in local scope (in a let or
function body) works the same way as it is in Scheme. I would like to
know some internals of Clojure when it comes to that. I thought about
explaining how closures work to my students using that analogy (is it
just an analogy ?), which I find to be an particularly clear way to
proceed but I want to avoid talking specifically about Scheme when I
want to talk about Clojure. Unless both are the same with respect to
this matter.

In Scheme, when a function is defined, a closure is created and is
composed of code (the body of the function) and an environment which
captures needed lexical bindings. When the closure is called (applied
to arguments), a new lexical environment is created to contain the
bindings of the arguments and that new environment is linked to the
one used in the definition of the function (points to). So, if we use
a variable in the body of the function, we look first in the new
environment and then in the other environment.

There could be a chaining of lexical environments.

There is an elegant notation to describe that process called
"Weizenbaum notation" but I was not able to find any source on it on
the Web. I used that when I studied Scheme in school, back in 97. If
anynone has got information on it, I would be glad. I guess it is
related to Joseph Weizenbaum.
We had, a control environment, an access environment, a form to be
evaluated and bindings in the current environment (terms translated
from french as the course was given in french). All in a concise
Weizenbaum frame.

Does it work the same in Clojure ? Or maybe someone could point me to
the source file ou source files where I can find that information.

TIA,

Ludovic Kuty

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to