[racket] variables within macros

From: John Clements (clements at brinckerhoff.org)
Date: Wed Jan 23 14:17:14 EST 2013

On Jan 19, 2013, at 11:39 AM, Matthias Felleisen wrote:

> 
> -- you need the same abstractions over and over again: this calls for a library system with proper linguistic support. Contrary to rumors, you can't really build this support from lambdas and S-expression macros. Is our syntax system perfect? Far from it, but it is better at just this task than anything else I have encountered. So this is how we currently have #' #` and #,. 
> 

Sorry to pick this thread up four days later…

On the topic of syntax and the syntax system, I want to publicly heap praise on Flatt, Culpepper, et al. (FCDF) for their JfP paper, "Macros that Work Together." It's written like a textbook, and does a very nice job of explaining the need for Racket's systems. Several specific points:

1) It does a very nice job of setting out the landscape and the goals before diving into the models.
2) It builds a series of models, starting with simple ones and showing what goes wrong with them.
3) Finally, refuting an earlier comment, I would argue that it *does* provide insight that separates various concerns. Specifically (for instance), it points out that staged compilation solves problems in expansion, specifically with the expansion (or lack thereof) of transformer definitions.

Put this together with the new GPCE paper, and I think you've got a nearly complete textbook on the future of syntax.

John



Posted on the users mailing list.