Ha!  The below solution is a macro-making macro that re-syntaxifies "params
..." to "belong to" the inner macro:

(define-syntax-rule (make-commands name params ...)
  (define-syntax (name inner-stx)
    (syntax-case inner-stx ()
      [(_ (c f) (... ...))
       (with-syntax ([(ps (... ...)) (datum->syntax inner-stx
(syntax->datum #'(params ...)))])
         #'(list (cons (symbol->string 'c)
                       (λ (ps (... ...)) f))
                 (... ...)))])))

I'm not sure if this is the canonical solution, but nevertheless I think
it's pretty awesome that this is possible and seems to work.
____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to