我有这个宏:
(define-syntax inspect
(syntax-rules ()
[(_ x) (printf "~a is: ~a\n" 'x x)]))
像这样工作:
(let ([x 2]) (inspect x))
>> x is: 2
但我想做的是扩展它,以便我拥有
(_ x ...)
并遍历提供的各种值,相应地打印出它们的变量名称和值。
IE
(let ([x 2] [y 3]) (inspect x y))
>> x is: 2
y is: 3
我有点卡在这部分。
例如,像这样:
(define-syntax (inspect stx)
(datum->syntax
stx
(for ([i (cdr (syntax->list stx))])
(printf "~a is: ~a" (syntax->datum i) i))))
我不确定如何在最后一行获得 i 的值。
任何帮助表示赞赏。
谢谢。