<div dir="ltr"><div class="gmail_default" style="font-family:courier new,monospace"><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Apr 16, 2014 at 11:38 PM, Sam Tobin-Hochstadt <span dir="ltr"><<a href="mailto:samth@cs.indiana.edu" target="_blank">samth@cs.indiana.edu</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On Wed, Apr 16, 2014 at 3:14 PM, Yi D <<a href="mailto:plmday@gmail.com" target="_blank">plmday@gmail.com</a>> wrote:<br>



><br>
> I am trying to understand hygienic macro expansion by looking into<br>
> the algorithms, in the paper "Macros That Work" and "Syntactic<br>
> Abstraction in Scheme".  Any of them may not exactly be what is<br>
> implemented in Racket but presumably the essential ideas are not<br>
> that different. Currently I encounter two problems in understanding:<br>
<br>
</div>You're more likely to understand the core ideas in Racket from the<br>
paper "Macros the Work Together" (by Matthew and others), which<br>
describes how the algorithms as implemented in Racket work.  This is<br>
somewhat different from Dybvig's paper, and both are much different<br>
than "Macros that Work".  Also, I think Matthew's paper is much easier<br>
to understand.<br>
<br>
Paper here: <a href="http://www.cs.utah.edu/plt/expmodel-6/" target="_blank">http://www.cs.utah.edu/plt/expmodel-6/</a></blockquote><div><br></div><div class="gmail_default" style="font-family:'courier new',monospace">


​That is quite an enlightening read.  Thanks for the pointer, Sam.​</div></div><br></div></div>