[racket] Flatten syntax and runtime phases?

From: Nick Sivo (nick at kogir.com)
Date: Fri Jul 13 17:06:57 EDT 2012

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

I don't, and apologize if I've been using the term (and others!)
incorrectly. What little I know has come from the documentation and
papers I've encountered, and lacks the rigor of academic training or
insight from the history of Racket.

In providing an observation based on my personal (and limited)
experience, I feel I've accidentally happened upon a (contentious?)
topic with history unfamiliar to me, and about which I'm not currently
able to converse precisely.  Oops :)

-Nick

On Fri, Jul 13, 2012 at 12:37 PM, Matthias Felleisen
<matthias at ccs.neu.edu> wrote:
>
> 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.