[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] [wg2] in support of single-arity procedural syntax transformers
- To: Alex Shinn <alexshinn@x>
- Subject: Re: [Scheme-reports] [wg2] in support of single-arity procedural syntax transformers
- From: Andy Wingo <wingo@x>
- Date: Wed, 11 May 2011 13:16:48 +0200
- Cc: scheme-reports <scheme-reports@x>
- In-reply-to: <BANLkTik84AVk5TbL=iAT-YYZpe05+QoO2w@mail.gmail.com> (Alex Shinn's message of "Wed, 11 May 2011 20:01:48 +0900")
- References: <m3sjsl4nkd.fsf@unquote.localdomain> <BANLkTik84AVk5TbL=iAT-YYZpe05+QoO2w@mail.gmail.com>
Hello Alex,
Nice parody :)
On Wed 11 May 2011 13:01, Alex Shinn <alexshinn@x> writes:
> (define-syntax id
> (lambda (x use-env mac-env)
> x))
>
> Triple-arity is the right answer for implementers that want to
> experiment with different macro systems, because it presents a uniform,
> extensible macro transformer interface -- you have full information
> of the expression, its usage environment, and the environment the
> macro was originally defined in.
Is it though? Can the transformer propagate accurate source
information, as PLT's transformer does? (C.f. the point about the
insufficiency of weak maps for bare symbols.)
As you know in CS there are three special numbers: 0, 1, and N. The
issue is that use env and mac-env might not be sufficient; what if you
start being interested in syntax properties? Taylor has mentioned
systems that might take 5 or 6 arguments.
Given this situation, the right thing is to choose to have 1 argument,
IMO, and make that one argument extensible in implementation-defined
ways.
> It also happens to be the underlying implementation used in
> most ER macro systems, and WG2 has already voted to
> provide ER macros.
I realize that this is also a parody of my R6RS argument, but I do not
consider to be as substantial.
Regards,
Andy
--
http://wingolog.org/
_______________________________________________
Scheme-reports mailing list
Scheme-reports@x
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports