У меня следующий тупой тест:
(define-syntax a
(lambda (stx)
(syntax-case stx ()
[(k e s) #'(let ((show display)) (e s))])))
(a show "something")
Почему это не работает?(Ошибка в DrRacket: expand: unbound identifier in module in: show
.
. Однако может работать следующее:
(define-syntax a
(lambda (stx)
(syntax-case stx ()
[(k e s)
(with-syntax ((show (datum->syntax #'k 'show)))
#'(let ((show display)) (e s)))])))
(a show "something")
. ПОЧЕМУ?