On 06/19/2015 03:07 PM, Thomas Dickerson wrote:
Hi All,

I'm trying to figure out how best to implement the following pattern of macro 
behavior:

Let's say we are writing Loop macro that implements a looped computation over a 
specified body. I would like to then be able to
(a) introduce additional Loop-specific macros that are defined only within the 
scope of the body
(b) are able to coordinate with the outer macro so as to alter its generation 
of prologue and epilogue code.

My best guess here is some use of local-expand with syntax-local-bind-syntaxes, 
or perhaps syntax-parameterize, but I can't quite work out the appropriate 
constructions.

I've been able to implement something similar using syntax-case functions on 
syntax objects at phase-0, by essentially implementing my own namespace for 
macros and passing it as an explicit argument, but this loses the hygiene 
benefits of coordinating with expand.  I had an offline discussion with Shriram 
yesterday in which he suggested looking into ways to reify the expansion-time 
namespace, but obviously current-namespace does the wrong thing here.

Can you provide a small example program and describe how you want it to behave?

Ryan

--
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 racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to