[plt-scheme] Problem with syntax-case macro under MzScheme 352

From: Blake McBride (blake at mcbride.name)
Date: Sat Sep 9 13:33:04 EDT 2006

At 12:10 PM 9/9/2006, Eli Barzilay wrote:
>On Sep  9, Blake McBride wrote:
> >
> > I can't hardly imagine making it any more complicated.  The simplest
> > things are made rocket science with define-syntax and friends.  Lisp
> > macros may not be perfect but normal people (those who don't devote
> > their life to understanding the intricacies of syntax-case) can use
> > and understand it.  Syntax-case is killing scheme.
>
>This paragraph is very arguable.  It generally depends if by `the
>simplest things' you mean `macros that capture bindings' or `macros
>that respect lexical scope'.  CL goes with the former, and Scheme with
>the latter.


I probably mean something like procedural macros that allow
you to specify exactly what you want without trying to do it in
some higher level 4th generational descriptive pattern language.
I believe there is an SRFI about this.

A procedural macro language is easier to understand in all but the simplest
cases.  It is possible to have a procedural macro extension that is
hygienic.  Descriptive languages are great for simple cases and
absolutely unwieldy or impossible for complex cases.

I know you understand syntax-case and friends but the ongoing volume of
questions about scheme macros on the net is indicative of a problem.
Average programmers should be able to use a languages without becoming
a language expert.  And, I don't believe that the complexity is necessary.

(Sorry.  I'm not directing any of this at you.  This is a product of my ongoing
frustration over scheme's macro system.  I spend a bunch of effort, basically
figure it out, don't use it for a while, and I'm back to ground zero.  I almost
never use lisp macros but they are always clear to me.)

Thanks.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20060909/7894d7f9/attachment.html>

Posted on the users mailing list.