Consider the following bits from ACL toploop:
======================================================================
> (setf d 17)
17
> (defun d (x) (* x 2))
D
> (d d)
34
> (setf d #'(lambda (x) ( * x 3)))
#<function 1 #xA6A640>
> (d 1)
2
> (funcall d 1)
3
======================================================================
These clearly demonstrate that a symbol may have separate simultaneous
bindings for value and for function, which do not shadow each other.
What other name binding spaces are there?
Where is this defined? I can't find much, if anything in CLtL2 on it.
Thanks,
Don
Don Erway III (The Wrong Ayatollah :) ······@ndc.com
NDC Systems 818-358-1871
730 E. Cypress Ave Fax:303-5770
Monrovia, CA, 91016
Disclaimer: These are my own personal opinions, and not those of my company,
or anyone else.
In article <····················@alumni.ndc.com>,
D. Erway <······@ndc.com> wrote:
>These clearly demonstrate that a symbol may have separate simultaneous
>bindings for value and for function, which do not shadow each other.
>
>What other name binding spaces are there?
Other namespaces I can think of:
classes
types
structures
deftypes
tagbody tags
blocks
setf expanders
packages
method combinations
restarts
The first three are related, since structure types and many built-in types
have corresponding classes with the same names.
>Where is this defined? I can't find much, if anything in CLtL2 on it.
No single place lists them all. Just about any facility that uses names
defines its own namespace for them. If you write a new DEF<something>
macro, you'll probably be creating another namespace (unless it's just a
wrapper for defining something in an existing namespace).
--
Barry Margolin
BBN PlaNET Corporation, Cambridge, MA
······@bbnplanet.com
Phone (617) 873-3126 - Fax (617) 873-6351