[racket] Flatten syntax and runtime phases?

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Fri Jul 13 15:37:05 EDT 2012

On Jul 13, 2012, at 2:05 PM, Nick Sivo wrote:

> There were only a few places where breaking hygiene was a feature,

You might have an extremely deep understanding of macros, in which case you can ignore the next sentence. 

Hygiene -- as it is used nowadays, not the thing for which I imported Barendregt's original term -- does not just prohibit certain idioms it also enables some that cannot be implemented with old macro system. 

And yes, the cost you pay is that you need to learn a distinct notation. BUT I would argue that for true syntax programmers, this is a plus because it reminds them of the very important fact that syntax is evaluated at a very different time from run-time code, and that values flowing from one phase to another work only by 'accident'. [I understand enough to know that it isn't really by accident but in a sense it is and often it fails in subtle ways.]

-- Matthias

Posted on the users mailing list.