On Thu, Feb 14, 2008 at 12:17:13AM -0800, [EMAIL PROTECTED] wrote:
I wish the term "variable" would just go away but Sussman, et al use it in R5RS a lot so I can't ignore it. The idea of a *bound symbol* is clear enough to me.
It's not entirely the same. A variable is a location that can hold a value. Your source code will use a symbol to refer to that variable, and the binding maps the symbol to that variable. How that is done depends on the scoping rules of the language you are using. Once a procedure is compiled, some symbols may no longer exist, but the variables still do. This is very clear in a language like C where the identifiers aren't accessible directly to the program itself. It's still the case in lisp, just a little confusing, since the symbols are a datatype to themselves in lisp. So, there are bound symbols, but it's not the same as a variable. The variable is what the symbol is bound to. Chris is the name of a person. The variable would be the actual person, and the binding would be a mapping between the name "Chris" and the person. The binding isn't directly visible, only its consequences. The variable is what is visible. Dave -- [email protected] http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg
