Re: [racket-users] Mapping over pattern variables

2017-09-01 Thread Philip McGrath
See also `in-syntax`: http://docs.racket-lang.org/reference/sequences.html?q=in-syntax#%28def._%28%28lib._racket%2Fsequence..rkt%29._in-syntax%29%29 -Philip On Fri, Sep 1, 2017 at 9:25 AM, Jens Axel Søgaard wrote: > One more: > > (begin-for-syntax > (define

Re: [racket-users] Mapping over pattern variables

2017-09-01 Thread Jens Axel Søgaard
One more: (begin-for-syntax (define (in-syntax-list stx) (in-list (syntax->list stx))) (require (for-syntax racket/base )) (define-syntax (for*/syntax-list stx) (syntax-case stx () [(_for*/syntax-list head (for-clause ...) body-or-break ... body) #'(datum->syntax #'stx

Re: [racket-users] Mapping over pattern variables

2017-09-01 Thread Jens Axel Søgaard
Two variations: #lang racket (require (for-syntax syntax/parse)) (define (do-something x y) (displayln (list x y))) (define-syntax-rule (macro (x ...) ys) (begin (outer x ys) ...)) (define-syntax-rule (outer x (y ...)) (begin (do-something x y) ...)) (macro (1 2 3) (4 5)) (newline)

RE: [racket-users] Mapping over pattern variables

2017-09-01 Thread Jos Koot
How about: (define-syntax (macro stx) (syntax-case stx () [(_ (var1 ...) (var2 ...)) #`(begin #,@(for*/list ((v1 (in-list (syntax->list #'(var1 ... (v2 (in-list (syntax->list #'(var2 ...) #`(do-something #,v1 #,v2)))])) Jos

Re: [racket-users] Mapping over pattern variables

2017-09-01 Thread David Storrs
On Fri, Sep 1, 2017 at 5:36 AM, Sam Waxman wrote: > Lets say I have a macro > > (define-syntax (macro stx) > (syntax-parse stx > [(_ (var1 ...) (var 2 ...)) > #'(begin > (begin >(do-something (#freeze var1) var2) >...) >