On Fri, Mar 14, 2008 at 1:57 PM, Joel Borggrén-Franck < joel.borggren.franck@gmail.com> wrote:
"and have discussed why hygienic macro systems rename symbols and that when using namespaces in the symbols, this might be enough as "rename" means, thus providing nice integration with preexisting namespace-using Gambit code."
Well, that's what I'd call a viable engineering solution, but I doubt that it truly solves the problem. Macros can capture names even within a single namespace, can't they? However, by reducing the number of symbols in the namespace (since core Scheme has only one), you reduce the probability of capture - assuming that names are randomly distributed in the space of all possible identifiers.
Which of course they're not. But that doesn't mean that ny controlling the boundaries of the problem that it doesn't become easier to write real code. I think that long experience is showing that hygienic macros are great, but they don't really serve as a practical substitute for the ability to break hygiene when necessary. And frankly, good old define-macro is hard to beat for that, no matter how groovy syntax-case appears to everyone.
I'm not really sure why I responded here, maybe it's just the effects of 3 hours of sleep in the last 36 :)
Long live define-macro!
david rush