[r6rs-discuss] [Formal] Implementing Common Lisp's defmacro is
eli at barzilay.org
Thu Sep 21 12:37:19 EDT 2006
On Sep 21, Pascal Costanza wrote:
> On 21 Sep 2006, at 17:54, Eli Barzilay wrote:
> > On Sep 17, Pascal Costanza wrote:
> >> Full description of the issue:
> >> Section 17.6, page 113, last paragraph, states that "Using lisp-
> >> transformer, defining a basic version of Common Lisp's defmacro is a
> >> straightforward exercise."
> >> This is misleading. [...]
> > I don't think so. I read "basic version" as the basic version
> > that is commonly found in some Schemes -- no destructuring and no
> > environments.
> The text says "basic version of Common Lisp's defmacro", not "basic
> version of some Schemes' defmacro."
My opinion is the same (change "\"basic version\"" in my text to
"\"basic version of Common Lisp's defmacro\"").
> The current text can be interpreted as if what lisp-transformer does
> were all that Common Lisp's defmacro basically does. And that's
> wrong. Implementing a full-fledged version of Common Lisp's defmacro
> is certainly not a straightforward exercise.
> The text can also be interpreted differently, but that's why I said
> the text is "misleading", not "wrong."
The text seems to be addressing people who would be worried for losing
defmacro-functionality, and it demonstrates that you don't really lose
> > [...]
> Huh? The text in R6RS is about implementing a subset of defmacro in
> terms of syntax-case.
(I was referring to what I think of when I see "basic version of
Common Lisp's defmacro".)
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://www.barzilay.org/ Maze is Life!
More information about the r6rs-discuss