Hi, <br><br>I&#39;m a newcomer to Racket, and, so far, I love it.  The language is a joy, and the documentation is well-written, but I find myself struggling a bit with the section in The Guide on macros.<br><br>In regards to syntax-rules and syntax-id-rules there is &#39;literal-id&#39; parameter that I don&#39;t understand.  In the syntax-rules example with rotate, it&#39;s left blank, but in the syntax-id-rules example with clock, it&#39;s populated with &#39;set!&#39;.  What specific purpose does this serve?  It seems to me that the syntax for set! would be matched in the pattern below &#39;set! clock e&#39;, so I don&#39;t know what other information it imparts.<br>
<br>Also, syntax-id-rules seems to be used, as stated in the documentation, for cases where the macro form won&#39;t follow an open parenthesis, and when using set!.  I know that set! is a special mutator function, but it seems strange to me that one function has an entirely special case.<br>
<br>Finally, reading through the reference, #&#39; serves, I believe, as shorthand for (syntax), but in what practical situations would I then call it?<br><br>Thanks for the help,<br><br>Todd <br>