David Sletten <·····@slytobias.com> writes:
> [...]
> But here some confusion regarding terminology begins to arise. The
> Common Lisp standard defines a "binding" as:
> "an association between a name and that which the name denotes."
>
> And the word "bound" means:
> "having an associated denotation in a binding."
>
> Furthermore, "that which [a] name denotes", in this context, is a
> variable not a value:
> "If a form is a symbol that is not a symbol macro, then it is the name
> of a variable, and the value of that variable is returned."
> http://www.lispworks.com/documentation/HyperSpec/Body/03_abaa.htm
As I see it,
Bindings can be bound or unbound. :-)
Symbols can have bindings or not. (Symbols can denote a binding or not)
When a symbol has a binding, the binding can be bound or unbound.
Symbols are names for bindings. That's why we pass a symbol to BOUNDP.
(variable = binding)
> [...]
> Apparently the symbol is bound but the variable (which is not a name)
> is unbound?
We must distinguish English from CLHSese.
In English, something has a binding <=> something is bound.
But in CLHSese, "binding" is just a synonym for "variable".
A variable can be "bound" or "unbound".
Lexical variables are always "bound".
Ok, if we look more closely at the glossary, we see that:
variable n. a binding in the ``variable'' namespace. See Section
3.1.2.1.1 (Symbols as Forms).
There are various kind of bindings. Here we discussed variable
bindings, so variable = binding. There are other kind of bindings
(block names, tag names, functions, macros, symbol-macro, package
names, etc).
bind v.t. (a variable) to establish a binding for the variable.
binding n. an association between a name and that which the name
denotes. ``A lexical binding is a lexical association between a name
and its value.'' When the term binding is qualified by the name of a
namespace, such as ``variable'' or ``function,'' it restricts the
binding to the indicated namespace, as in: `` let establishes
variable bindings.'' or ``let establishes bindings of variables.''
bound adj., v.t. 1. adj. having an associated denotation in a
binding. ``The variables named by a let are bound within its body.''
See unbound. 2. adj. having a local binding which shadows[2]
another. ``The variable *print-escape* is bound while in the princ
function.'' 3. v.t. the past tense of bind.
bound declaration n. a declaration that refers to or is associated
with a variable or function and that appears within the special
form that establishes the variable or function, but before the body
of that special form (specifically, at the head of that form's
body). (If a bound declaration refers to a function binding or a
lexical variable binding, the scope of the declaration is exactly
the scope of that binding. If the declaration refers to a dynamic
variable binding, the scope of the declaration is what the scope of
the binding would have been if it were lexical rather than dynamic.)
unbound adj. not having an associated denotation in a binding. See
bound.
unbound variable n. a name that is syntactically plausible as the
name of a variable but which is not bound in the variable
namespace.
--
__Pascal Bourguignon__ http://www.informatimago.com/
Nobody can fix the economy. Nobody can be trusted with their finger
on the button. Nobody's perfect. VOTE FOR NOBODY.