Newsgroups: comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!news.mathworks.com!hookup!swrinde!howland.reston.ans.net!usenet.ins.cwru.edu!news.ecn.bgu.edu!siemens!princeton!news.princeton.edu!blume
From: blume@dynamic.cs.princeton.edu (Matthias Blume)
Subject: Re: A proposal for #f and '() in the GNU extension language
In-Reply-To: bh@anarres.CS.Berkeley.EDU's message of 20 Nov 1994 16:20:48 GMT
Message-ID: <BLUME.94Nov20152331@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: <39l7er$q02@wsiserv.informatik.uni-tuebingen.de>
	<OZ.94Nov18213733@nexus.yorku.ca> <3al6o7$p8p@agate.berkeley.edu>
	<BLUME.94Nov19142656@dynamic.cs.princeton.edu>
	<3ant10$npt@agate.berkeley.edu>
Date: Sun, 20 Nov 1994 20:23:31 GMT
Lines: 31

In article <3ant10$npt@agate.berkeley.edu> bh@anarres.CS.Berkeley.EDU (Brian Harvey) writes:

   blume@dynamic.cs.princeton.edu (Matthias Blume) writes:
   >Is anybody else getting extremely tired like me of having to listen to
   >all this whining about hygienic macros?
   >
   >It is true that the appendix in R4RS is long and complicated, but this
   >is because it tries (rather unsuccesfully, IMO) to not only describe
   >the high-level system, but also a low-level mechanism.

   It's the low-level mechanism that I'm "whining" about.  We have a perfectly
   good low-level mechanism that can be implemented in about three lines of
   code and that any freshling can understand.

The problem with this perfectly good low-level mechanism is that it
is severely broken.  Every freshling can understand this.
Furthermore, it is not possible to build the high-level mechanism on
top of this low-level apparatus (at least not without going through
even more trouble than defining a more capable low-level mechanism
would cause).  Eval-it-twice (which I assume is what you mean by
perfectly good) and it's glitches has led a large number of people
to the belief that macros are a bad thing to begin with, which is a
pity.

There are low-level macro systems, which (as far as I can tell) are as
close to the eval-it-twice paradigm as possible without sacrificing
hygiene.  (Rumors are that the famous next version of VSCM will have
such a system.  If anybody is interested in details -- ask!)

--
-Matthias
