Subject: Re: Counting namespaces, was Re: scheme seems neater
From: rpw3@rpw3.org (Rob Warnock)
Date: Fri, 09 Apr 2004 05:12:23 -0500
Newsgroups: comp.lang.lisp
Message-ID: <pPqdnUGlwtWa6uvd4p2dnA@speakeasy.net>
Jeff Dalton  <jeff@todday.inf.ed.ac.uk> wrote:
+---------------
| The lexical X shadows the special one, so they're not in
| separate namespaces.
+---------------

And vice-versa, which led me to concede that particular point in
my parallel reply to Brian Mastenbrook.

+---------------
| I won't go through the rest.  We obviously disagree on what
| counts as a namespace.
+---------------

Possibly, though perhaps not as much as it seems. I was quoting a bunch
of people from previous similar threads, and not arguing that hard myself
for all of their viewpoints.

My own view is more that something is a separate namespace if within
the same lexical scope -- and *especially* within the same expression --
you can use the same symbol to mean different things. As I replied to
Brian, that cuts the number of namespaces to (I think) about 6, and
even that only if you consider the uses of a symbol for it's symbol-name
rather for some binding. [Which I feel one should, since LOOP keywords,
normal keywords in function calls and macros, method combinatation names,
CATCH tags -- all of these can be lumped into one "marker" namespace,
which *is* disjoint from function, variable, block tag, & GO tag bindings,
as well as declaration identifiers (which you omitted).]

+---------------
| Historically, the aim of saying Common Lisp has lots of namespaces
| has been to say Common Lisp is a mess.
+---------------

That is/was certainly not my intent. It was only to show that it is a
"Lisp-N" for some (small) N > 2, just as C has more than two namespaces.

I happen to think the number is at least 5, probably 6 [rational: CL
really *does* have programmer-visible symbols, *not* just variable
bindings], and *maybe* one or two more, but I'm not going to argue
strongly for more than 6.

+---------------
| So everything that's anything like a namespace is thrown in,
| because the aim is to spin to make CL sound as bad as possible...
+---------------

Again, not my intention at all. Rather, I simply think that it's good
from time to time to clarify just what CL's rules are, so that we all
can use it reliably & safely & without undue surprises.

+---------------
| Presumably that's not *your* aim; but the effect can be the same.
+---------------

(See above.)


-Rob

-----
Rob Warnock			<rpw3@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607