guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Macro uexpansion


From: Craig Brozefsky
Subject: Re: Macro uexpansion
Date: 20 Dec 2000 12:49:54 -0500
User-agent: Gnus/5.0807 (Gnus v5.8.7) Emacs/20.7

Mikael Djurfeldt <address@hidden> writes:

> > This is exactly the kind of unfortunate coincidence of 'flexibilities'
> > that Craig is warning us about; he's telling us that the CL community
> > found this to be a serious problem.
> 
> It seems like Craig is of the opinion that much of his concerns are
> removed by the restrictions of not being able to rely on the "when"
> and "where" of transformers.

Well, yes and no.  

Yes with syntax-case.  When it comes to syntax-case and the pattern
language for writing transformers as defined in R5RS, I see little
reason for their to be a defined time at which the transformer is run.
This is because syntax-case macros are not programs, but are
specifications for a transformer which use a limited pattern language.
Hygenic macros are much different than the "program writing program"
macros of CL.

No with real macros.  With real macros, since your dealing with an
expansion function that will be evaluated in a particular environment,
producing a new form, not knowing what environment and at what time it
is expanded becomes an issue.  Expansion time needs to be suitably
well-defined in that case.

Guile is not to my knowledge intended to be pure R5RS, since pure R5RS
is pretty much worthless as an extension language.  Guile, at least
last time I checked, had support for lisp-like macros, and these are
quite useful.

Please fill me in if I'm missing something.

-- 
Craig Brozefsky                   <address@hidden>
LispWeb -- Mailing list for Lisp Based Web Development
Homepage:              http://www.red-bean.com/lispweb



reply via email to

[Prev in Thread] Current Thread [Next in Thread]