Newsgroups: comp.lang.scheme,comp.lang.misc,gnu.misc.discuss
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!news.mathworks.com!europa.eng.gtefsd.com!howland.reston.ans.net!cs.utexas.edu!rutgers!princeton!nimaster.princeton.edu!blume
From: blume@aleph.cs.princeton.edu (Matthias Blume)
Subject: Re: GNU Extension Language Plans
In-Reply-To: assar@bonito.pdc.kth.se's message of 24 Oct 1994 03:46:22 GMT
Message-ID: <BLUME.94Oct24121428@aleph.cs.princeton.edu>
Originator: news@nimaster
Sender: news@Princeton.EDU (USENET News System)
Nntp-Posting-Host: aleph.cs.princeton.edu
Organization: Princeton University
References: <9410190420.AA02904@mole.gnu.ai.mit.edu>
	<MDJ.94Oct23224108@sanscalc.nada.kth.se>
	<OZ.94Oct23202728@nexus.yorku.ca>
	<ASSAR.94Oct24044622@bonito.pdc.kth.se>
Date: Mon, 24 Oct 1994 16:14:28 GMT
Lines: 60
Xref: glinda.oz.cs.cmu.edu comp.lang.scheme:10592 comp.lang.misc:18387 gnu.misc.discuss:19132

In article <ASSAR.94Oct24044622@bonito.pdc.kth.se> assar@bonito.pdc.kth.se (Assar Westerlund) writes:

   In article <OZ.94Oct23202728@nexus.yorku.ca> oz@nexus.yorku.ca (ozan s. yigit) writes:
      Mikael Djurfeldt is concerned about the suggested modifications to the
      Scheme language in order to fullfill GNU extension language goals. I do
      not think there is any cause for concern. It is clear that the changes are
      not to The Scheme language, which is well defined in an IEEE standard and
      Revised^4 Report, The language described in the RMS note may at best be
      characterized as a derivative of Scheme, and i doubt it would be called
      Scheme, any more than Dylan is called Scheme.

   It's not Scheme, but wouldn't it be nice if it could be as close to
   Scheme as possible?

No.  This only leads to confusion and subtle bugs.  If it isn't
Scheme, then it should be different enough for every real Scheme to
cough up and complain about a program in that new language on first
sight.  Otherwise we just add one more to the list of slightly
incompatible Scheme implementations...

--- Scheme talk --- only for the comp.lang.scheme audience ----

Many of RMS' suggestions of what needs to be changed actually
constitute inverse progress.  It took a lot of time and arguing to
finally get over the non-distinction of #f and ().  Now RMS walks in
and tries to tell us: ``Well folks, nice work -- but let's go back to
square one.''  I don't think so!

What are ``multiple slots'' in a symbol?  I'm not even aware of one
single slot in a symbol!  Multiple obarrays?  Oh -- I see -- he wants
a module system.  Good point!

Fluid-let?  What for?  (I'm aware of the fact that there are many
people who seem to think that fluid-let is indispensable.  I disagree
with this point of view.  Establishing error-handlers,
interrupt-handlers and so on can be done with procedures similar to
WITH-INPUT-FROM-FILE.  I don't think we should sacrifice strict lexical
scoping for a few special cases.)

Distinguishing between upper-case and lower-case in symbols.  Yes,
please!  But we have been through that argument, haven't we?

Powerful catch and throw?  It's there, and it's called
CALL-WITH-CURRENT-CONTINUATION.  If you don't want to confuse your
``average programmer'' with the word ``continuation'' then just wrap
call/cc into some macros:

	(define-syntax catch
	  (syntax-rules ()
	    ((_ c exp ...)
	     (call-with-current-continuation (lambda (c) exp ...)))))

	(define-syntax throw
	  (syntax-rules ()
	    ((_ c val) (c val))))

Ok, let me step down from this soapbox...

--
-Matthias
