<br><br><div class="gmail_quote">On Fri, Mar 14, 2008 at 1:57 PM, Joel Borggrén-Franck <<a href="mailto:joel.borggren.franck@gmail.com">joel.borggren.franck@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
"and have discussed why hygienic macro systems rename symbols and that<br>
when using namespaces in the symbols, this might be enough as "rename"<br>
means, thus providing nice integration with preexisting<br>
namespace-using Gambit code."</blockquote><div><br>Well, that's what I'd call a viable engineering solution, but I doubt that it truly solves the problem.  <br>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.<br>
<br>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.<br>
</div></div><br>I'm not really sure why I responded here, maybe it's just the effects of 3 hours of sleep in the last 36 :)<br><br>Long live define-macro!<br><br>david rush<br>-- <br>Once you label me, you negate me<br>
 - Soren Kierkegaard