2013/12/29 Alexander D. Knauth <alexan...@knauth.org>: > I'm not really sure why this works either, but try this: > > (define-syntax (:match stx) > (syntax-case stx () > [(:match val-expr [pat . more] ...) > (with-syntax ([(new-pat ...) (for/list ([pat-stx (in-list (syntax->list > #'(pat ...)))]) > (datum->syntax pat-stx `(:pat > ,(syntax->datum pat-stx))))]) > #'(match val-expr [new-pat . more] ...))])) > > (check-equal? (:match '(42 x) [(list n:num s:sym) (list n s)]) > (match '(42 x) [(:pat (list n:num s:sym)) (list n s)]))
Nice! /Jens Axel ____________________ Racket Users list: http://lists.racket-lang.org/users