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 (in-syntax-list stx) (in-list (synt
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 (con
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)
(defin
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
-Origina
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)
>...)
> ...)]))
>
> and I want
5 matches
Mail list logo