Re: Variable transformers and transformer forms
Per Bothner 25 Jun 2006 03:02 UTC
David Feuer wrote:
> As a convenience form I would suggest
> (syntax-transformer (stx) body ...) => (syntax-case-transformer
> (lambda (stx) body ...)).
This is still needlessly verbose. A problem is the desire for
orthogonality, separating the binding (define/let/letrec-syntax)
from the transformer specification. That is all very well for
"core" macro syntax, but it is overkill for what people need
99% of the time.
So let me repeat my suggestion, which no-one has commented on:
(define-syntax-case NAME ()
((_ PATTERN ...)
EXPRESSION))
...)
The simple/common case (including syntax-rules):
(define-syntax-case NAME ()
((_ PVAR ...)
#`(... PVAR ...))
Implementation:
(define-syntax define-syntax-case
(syntax-rules ()
((define-syntax-case name literals . parts)
(define-syntax name
(lambda form
(syntax-case form literals . parts))))))
--
--Per Bothner
xxxxxx@bothner.com http://per.bothner.com/