> That's why I think of `match` as special: it has its own means of extending 
> its interface, namely with match expanders. 
> 
> What I'm curious about is the more general situation of composing macros that 
> hold identifiers.

It is my understanding that this is what Jack Firth’s
generic-syntax-expanders package does. Disclaimer: I have not used
it myself.

More generally, macros can communicate by using arbitrary transformer
bindings, usually containing structure instances which have structure
type properties attached to their struct types. This is how match
expanders, syntax classes, rename transformers, and other macros
that communicate with one another work internally.

Even more generally, if you want macros to compose in a more arbitrary
and less structured way, you can call local-expand from the containing
macro in order to “flip” evaluation order as I believe you described
in your original message.

Alexis

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to