Skeptical about Macro Hygiene?
Eli Barzilay has a couple of interesting USENET articles on his
experience changing from defmacro to syntax-case. Unfortunately, I
didn't understand Shriram Krishnamurthi's comments on hygiene at
all.
Additions on Tuesday, 21 April 2009
I thought I'd better quote what he said:
By the way, I've been skeptical about hygiene for the past six or seven years. The hygiene algorithm struck me as such an obviously good idea that I simply couldn't understand what the MIT folks meant when they said (and I'm paraphrasing, loosely, from papers I haven't read in a decade) that the hygiene algorithm doesn't make sense. Only a few years ago did I begin to unravel this, and now I almost entirely understand it. In short, it has taken me nearly a decade to understand why someone did not understand something that I understood obviously, and it's only because what I understood obviously, I now barely understand at all.
It's really simple to understand how to implement defmacro. It's
not simple to understand how to implement syntax-case. Throw in
modules, as in PLT Scheme (and R6RS, apparently), and things are
even more difficult. Throw in the oddity of writing syntax-case/syntax-rules macros with the pattern matching syntax, and you
really have to wonder.
I really wish somebody would sit down and write detailed survey article comparing all the Lisp and Scheme macro systems and considering all the interactions with modules and pattern matching. I think it's really needed. [Do I say this somewhere else, too?]
Comments
Comments powered by Disqus