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
-~----------~----~----~----~------~----~------~--~---

Reply via email to