On Tue, Feb 17, 2009 at 7:01 AM, David Sletten <da...@bosatsu.net> wrote: > > In a language such as Common Lisp where every variable is (effectively) a > reference variable, we have three concepts: names, variables (references), > and values (referents). These three things have two connections. In an > orthodox (perhaps pedantic) sense a name is "bound" to a variable, and the > variable "has" a value.
Clojure similarly has three concepts with two connection for global Vars. As you point out later, locals (as created by 'fn' and 'let') are a bit different. > I think that the strict usage is consistent with Clojure's "binding" macro, > which binds a name to a new variable. Are you sure? It seems to me the most natural mapping from the CL concepts to Clojure is: CL name -> Clojure symbol, name, or perhaps namespace entry CL variable -> Clojure Var (or perhaps ref, atom, etc.) CL value or referent -> Clojure value. Clojure's 'binding' macro does not change the connection from name to Var, but the one from Var to (effective, thread-local) value. I think this is worth dicussing not so much so because I care about being consistent with the classic meaning of these words in various other languages, but I'm all for careful use of English to reduce confusion as much as possible. --Chouser --~--~---------~--~----~------------~-------~--~----~ 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 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 -~----------~----~----~----~------~----~------~--~---