Variable transformers and transformer forms David Feuer (24 Jun 2006 20:50 UTC)
Re: Variable transformers and transformer forms Per Bothner (25 Jun 2006 03:02 UTC)
Re: Variable transformers and transformer forms David Feuer (26 Jun 2006 20:58 UTC)

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/