Per Bothner wrote:
> Sam TH wrote:
>> Thinking about this a little more, it seems like it would run into
>> some trouble with `local-expand' [1,2]. You might be able to just say
>> that we delay the expansion of `lambda' bodies 'as long as possible',
>> but that that point it seems like we're not gaining very much.
>>
>> [1]
>> http://docs.plt-scheme.org/reference/stxtrans.html#(def._((quote._~23~25kernel)._local-expand))
>> [2] http://www.ccs.neu.edu/scheme/pubs/scheme2007-ctf.pdf , Sections 3.4 and
>> 4
>
> I'm afraid I don't have time to fully understand the way-too-many forms
> of PLT macros, so I can't really tell if local-expand would be a
> problem. Off-hand, I don't understand why: If the expanding a lambda
> body is deferred, and the lambda body contains a local-expand, then the
> local-expand gets deferred.
>
> But if someone is looking for an example of "the macro tail wagging
> the Scheme dog" this may be it ...
I see this more as the macro tail wagging the macro expansion dog, which
seems appropriate.
Brian Harvey suggested the Steering Committee adopt
a policy that if the needs of macrology conflict
with the needs of traditional macro-free Scheme
practices, it should be the macro standard that
has to jump through hoops to fix it, not the core
Scheme part of the standard.
I just do not see where, if programming without the use of macros (this
example has already rejected the assumption), one has to jump through
hoops or deal with a muddled standard because of the concerns induced by
macros. I think R6RS did a good job in making macro-free programming
independent of the concerns that must be addressed when programming with
macros. It further does a good job of separating the concerns that must
be addressed with rewriting macros (syntax-rules) and procedural macros
(syntax-case). The latter is an inherently difficult problem involving
phase semantics, but if you choose not to use the syntax-case library,
you can safely ignore phasing, `for' clauses, etc.
Where is the burden on macro-free programs? (This is not meant to be
argumentative---I am genuinely trying to understand this criticism).
David
_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss