Newsgroups: comp.lang.scheme,comp.lang.misc,gnu.misc.discuss
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!EU.net!uunet!sytex!smcl
From: smcl@sytex.com (Scott McLoughlin)
Subject: Re: Scheme requires '() to be a true value (was Re: GNU Extension
Message-ID: <VwaaVc1w165w@sytex.com>
Sender: bbs@sytex.com
Organization: Sytex Access Ltd.
References: <id.YPFE1.IMD@nmti.com>
Date: Fri, 4 Nov 1994 21:01:18 GMT
Lines: 39
Xref: glinda.oz.cs.cmu.edu comp.lang.scheme:10937 comp.lang.misc:18745 gnu.misc.discuss:19442

peter@nmti.com (Peter da Silva) writes:

> In article <BLUME.94Nov3103353@beth.cs.princeton.edu>,
> Matthias Blume <blume@beth.cs.princeton.edu> wrote:
> > Separate name spaces for procedures and other values simply don't make
> > sense if procedures are first-class citizens of the language.  In
> > fact, when you treat them differently, then *by definition* they are
> > no longer first-class.
> 
> Yes! That always bugged me about Lisp and when I got to see what Scheme
> was like it made so much more sense.

Howdy,
        I disagree. You could just as well say the opposite:
"Gosh, you _have_ to refer to non-function bindings using an
'unquoted' syntax. Why not have first class, quoted bindings
for non-function values." Of course, this is nonsense, as is
the opposite statement.
        Functions are "first class" in Lisp-2. You can
print them, store them into an arbitrary cell, apply
them to arguments using FUNCALL and APPLY, eq?/eq test
them and functionp/procedure? test them.
        I think the big difference between the primary
Lisp-2, Common Lisp, and the primary Lisp-1, Scheme, on
this issue is that in CL one can fetch/store a value
from a binding (fun or var), given its symbol name:
        (SYMBOL-VALUE 'FOO) and (SYMBOL-FUNCTION 'FOO)
which is not part of the Scheme standard.
        Perhaps another oddity is that the function
binding of a symbol is typed to functions, but that's
not so bad. In both Scheme and Lisp, for example, 
string "slots" or elements are typed to characters.
        I do _not_ necessarily disagree that a
Lisp-1 makes for a more "elegant" language.

=============================================
Scott McLoughlin
Conscious Computing
=============================================
