<html>
<body>
<font size=3>At 12:10 PM 9/9/2006, Eli Barzilay wrote:<br>
<blockquote type=cite class=cite cite="">On Sep 9, Blake McBride
wrote:<br>
> <br>
> I can't hardly imagine making it any more complicated. The
simplest<br>
> things are made rocket science with define-syntax and friends.
Lisp<br>
> macros may not be perfect but normal people (those who don't
devote<br>
> their life to understanding the intricacies of syntax-case) can
use<br>
> and understand it. Syntax-case is killing scheme.<br><br>
This paragraph is very arguable. It generally depends if by
`the<br>
simplest things' you mean `macros that capture bindings' or `macros<br>
that respect lexical scope'. CL goes with the former, and Scheme
with<br>
the latter.</blockquote><br><br>
</font>I probably mean something like procedural macros that allow<br>
you to specify exactly what you want without trying to do it in<br>
some higher level 4th generational descriptive pattern language.<br>
I believe there is an SRFI about this.<br><br>
A procedural macro language is easier to understand in all but the
simplest<br>
cases. It is possible to have a procedural macro extension that
is<br>
hygienic. Descriptive languages are great for simple cases and
<br>
absolutely unwieldy or impossible for complex cases.<br><br>
I know you understand syntax-case and friends but the ongoing volume
of<br>
questions about scheme macros on the net is indicative of a problem.<br>
Average programmers should be able to use a languages without
becoming<br>
a language expert. And, I don't believe that the complexity is
necessary.<br><br>
(Sorry. I'm not directing any of this at you. This is a
product of my ongoing<br>
frustration over scheme's macro system. I spend a bunch of effort,
basically<br>
figure it out, don't use it for a while, and I'm back to ground
zero. I almost<br>
never use lisp macros but they are always clear to me.)<br><br>
Thanks.<br><br>
</body>
</html>