Interesting, I guess it's a good sign to see this kind of article on a more mainstream site like developerworks.<p>The open-brace, close-brace style of parenthesis placement is not very nice, though, and not idiomatic; and "then" and "else" in his examples aren't exactly reserved words. Still, kudos for trying to explain syntax-case macros.<p>Syntax-<i>rules</i> macros have a beauty worthy of Scheme. Syntax-<i>case</i> macros have a power worthy of Scheme. That the author's examples were not beautiful was not helped by syntax-case itself ;-)<p>Andy, who hacks a lot on syntax-case macros and an implementation thereof...
<i>...making it easier to craft boilerplate code</i><p>Funny... I thought the goal of metaprogramming was to <i>eliminate</i> boilerplate code. I suspect that's what they really meant here - maybe they phrased it that way to make the intent understandable to Java programmers.
I haven't looked at them, yet, but there is also a part 1 and a part 3. Part 3 has a scary title ;-).<p>The art of metaprogramming, Part 1: Introduction to metaprogramming<p><a href="http://www.ibm.com/developerworks/linux/library/l-metaprog1.html" rel="nofollow">http://www.ibm.com/developerworks/linux/library/l-metaprog1....</a><p>The art of metaprogramming, Part 3: Enterprise metaprogramming<p><a href="http://www.ibm.com/developerworks/linux/library/l-metaprog3/" rel="nofollow">http://www.ibm.com/developerworks/linux/library/l-metaprog3/</a>