Newsgroups: comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!gatech!newsxfer.itd.umich.edu!gumby!newspump.wustl.edu!news.ecn.bgu.edu!siemens!princeton!news.princeton.edu!blume
From: blume@dynamic.cs.princeton.edu (Matthias Blume)
Subject: Re: Symbol space in Scheme v. Lisp
In-Reply-To: lyn@martigny.ai.mit.EDU's message of 23 Jan 1995 13:13:13 -0500
Message-ID: <BLUME.95Jan23164145@dynamic.cs.princeton.edu>
Originator: news@hedgehog.Princeton.EDU
Sender: news@Princeton.EDU (USENET News System)
Nntp-Posting-Host: dynamic.cs.princeton.edu
Organization: Princeton University
References: <3fv8pn$llu@gort.oit.umass.edu> <9501231311.aa00916@mc.lcs.mit.edu>
Date: Mon, 23 Jan 1995 21:41:45 GMT
Lines: 34

In article <9501231311.aa00916@mc.lcs.mit.edu> lyn@martigny.ai.mit.EDU (Franklyn Turbak) writes:

   Given the distinction between symbols and variables, there are really
   two questions here:

   (1) Why is there a single namespace for variables (i.e., function names
       and other names are in the same namespace)?

   (2) Why doesn't Scheme support property lists on symbols?

   The answer to both questions is minimalism. Sussman and Steele wanted
   a language with a few simple but powerful features.  Because all
   procedures are first-class, they can be named in the same way that any
   other value can be named; there is no need for a separate function
   namespace.

I think this isn't right.  Minimalism is the answer to the second
question, but not to the first.  Multiple name spaces for variables
holding function values and non-function values requires a syntactic
means of distinguishing between the two.  Because in Scheme functions
are values HAVING THE SAME RIGHTS AND RESPONSIBILITIES AS ANY OTHER
VALUE they cannot, by definition, be distinguished from one another.
And in fact -- they shouldn't be.

If they would then I couldn't change representation of data from, say,
lists to functions and vice versa without changing syntax throughout
the entire program.

This question has come up a while ago already, and I gave the same
answer -- even a bit more elaborate.  Perhaps it is time to put it
into the FAQ...

--
-Matthias
