[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
a Q on syntax-rules vs syntax-case
From: |
Matt Wette |
Subject: |
a Q on syntax-rules vs syntax-case |
Date: |
Thu, 05 Feb 2015 11:44:13 -0800 |
I want to use macros inside a let which is part of an expansion of a top-level
macro in order to have local bindings visible to macros.
Is there a difference in implementation (e.g., when inside macros get expanded)
between using syntax-rules versus syntax-case at the top level. Is this
coding considered OK?
(define-syntax foo
(lambda (x)
(syntax-case x ()
((_ <e>)
#'(let* ((v (cons 'a #f))
(doit (lambda (x) (set-cdr! v x))))
(letrec-syntax
((foo-1 (syntax-rules ()
((_ <v>)
(doit '<v>)))))
(foo-1 <e>))
v)))))
(define-syntax bar
(syntax-rules ()
((_ <e>)
(let* ((v (cons 'a #f))
(doit (lambda (x) (set-cdr! v x))))
(letrec-syntax
((foo-1 (syntax-rules ()
((_ <v>)
(doit '<v>)))))
(foo-1 <e>))
v))))
(foo 1) => (a . 1)
(bar 1) => (a . 1)
- a Q on syntax-rules vs syntax-case,
Matt Wette <=