[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] [wg2] in support of single-arity procedural syntax transformers

On Fri, May 13, 2011 at 6:14 PM, Eli Barzilay <eli@x> wrote:
> It's possible to have a world where both systems are optional: either
> you implement neither (so `syntax-rules' is implemented in some
> completely different way, or not at all), one, both, or more.

OK, so you're describing a macro plugin system, where
importing the appropriate macro module would register a
macro object predicate and associated applicator.

Yes, this would not require the syntax-object transformer
system to be in the core.  I think Andy Wingo was suggesting
this be in the core, but let's assume it's a module for now.

The problem is it's still fairly complicated, and theoretical -
there are no systems I know of which do this.  Chicken 3
had pluginable macro systems, but they were basically
mutually exclusive.  We'd need some more work in this
before we could standardize it.  I'm actually interested in
this, so I may hack on it when I get more time.  But in the
meantime it's simpler to just use a wrapper.

The other problem is assuming that the syntax-object
transformers are worthy of the unique position of not
requiring a wrapper.  Why the asymmetry?  I think it's
presumptuous to assume that it, or a deriviate thereof,
is the final step in the evolution of macro systems.

I also think the "single arity is inherently superior to
triple arity" argument is silly.  That's like saying there's
something wrong with vector-set! or substring because
they take three arguments.  It's also irrelevant, because
there could just as easily be alternate macro systems
which also take a single arity signature but use a different
API and semantics from the syntax-object macro


Scheme-reports mailing list