Subject: Re: Macro-writing in CL
From: (Rob Warnock)
Date: 8 Jun 2001 04:25:01 GMT
Newsgroups: comp.lang.lisp
Message-ID: <9fpk2t$evaa6$>
Kent M Pitman  <> wrote:
| Duane Rettig <> writes:
| > For example, the fact that the CL community does not care to
| > continue developing their macro system and the scheme community
| > does, suggests to me that the scheme community is dissatisfied with
| > their macro system, whereas the CL community is satisfied with theirs.
| I think this is a good point.
| I think the Scheme community is puzzled by the fact that CL doesn't
| have a hygienic macro system and yet doesn't run into all kinds of
| problems as a result.

Confession: I happen to program in both CL & Scheme and, as it happens,
when I write macros in Scheme I always use "defmacro", since it does the
(to me) obvious & correct thing. [Hygiene? See "gensym".]

| There's pretty extensive experience with myriad users and multiple
| implementors over a really long time (in "contemporary programming
| language use" terms) to suggest that the reason no one is "evolving"
| the CL macro system is that it works just fine.

That's why I've never bothered to learn R5RS macros, even though they're
"standard" and defmacro isn't. The latter is all I need; I understand what
it does; and all of the implementations of Scheme I use (and of course,
all of the CLs) have it (or something equivalent from which it can be
trivially defined).


p.s. It may help that I use to code some *incredibly* complex things
in MACRO-10 (the PDP-10 assembly language) macros way back when...  ;-}
It didn't have "gensym" per se -- you had to manually construct your
own unique macro temp symbols by concatenating assembly-time counters
and local prefixes & suffixes & the like. But now that I think about it,
one could have easily written "gensym" *in* MACRO-10 macros! (I just never
would have called it that, since I hadn't been exposed to Lisp yet.)

Rob Warnock, 31-2-510		<>
SGI Network Engineering		<> [until 8/15]
1600 Amphitheatre Pkwy.		Phone: 650-933-1673
Mountain View, CA  94043	PP-ASEL-IA

[Note: and aren't for humans ]