Newsgroups: comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!pipex!uknet!festival!edcogsci!jeff
From: jeff@aiai.ed.ac.uk (Jeff Dalton)
Subject: Re: Common Lisp' dual name space
Message-ID: <Cyx1u5.7H6@cogsci.ed.ac.uk>
Sender: usenet@cogsci.ed.ac.uk (C News Software)
Nntp-Posting-Host: bute-alter.aiai.ed.ac.uk
Organization: AIAI, University of Edinburgh, Scotland
References: <CyrvCG.8wH@cogsci.ed.ac.uk> <Xo0aVc1w165w@sytex.com>
Date: Mon, 7 Nov 1994 21:18:05 GMT
Lines: 63

In article <Xo0aVc1w165w@sytex.com> smcl@sytex.com (Scott McLoughlin) writes:

>        Anyway, it seems we agree that CL is at least a
>LISP-4, so my original point that LISP-2 is a misnomer
>wasn't out of place. 

It depends on what you take Lisp-2 to mean.  If it means separate
function-name and variable namespaces, CL is straightforwardly a
Lisp-2.  Now consider that well-informed people often *say* 
Common Lisp is a Lisp-2.

Finally, let me quote from Gabriel and Pitman's "Technical Issues
of Separation in Function Cells and Value Cells":

  ...

  A _binding_ is a pairing of an identifier with a location in
  which a Lisp object may be placed.

  ...

  An _environment_ is the set of all bindings in existence at a
  given time.  We will call a subset of an environment a
  _subenvironment_.

  A _namespace_ is a subenvironment_. ...

  ...

  In this paper, we will refer to two abstract dialects [sic]
  of Lisp, called Lisp-1 and Lisp-2.

  Lisp-1 has a single namespace that serves a dual role as the
  function namespace and value namespace; ...  

  Lisp-2 has distinct function and value namespaces.  ...  Common
  Lisp is a Lisp-2 dialect.

[There's a parallel distinction referring to having the same (Lisp-1)
or different (Lisp-2) rules for evaluating functional and argument
positions of a form.]

And later:

   There are more namespaces than the two that are discussed here.
   ... other namespaces include at least those of blocks and tags;
   type names and declaration names are also often considered
   namespaces.  Thus the names Lisp-1 and Lisp-2, which we have
   been using, are misleading.  Lisp-5 and Lisp-6 might be more
   appropriate.

They also note that users can create new namespaces by using
symbols as arguments to GET, ASSOC, GETHASH, and the like.

Now, is it really credible that we should prefer Lisp-5 and Lisp-6?
No.  Whatever Scheme is, it's not a Lisp-6.

So, taking all this into account, I don't think there's much
problem in saying Common Lisp is a Lisp-2.

-- jeff


