我想要一个可以接受任意数量参数并返回每个参数列表的宏,如下所示:
(TEST first second third)
=> '(first second third)
答案 0 :(得分:4)
喜欢这样吗?
(define-syntax-rule (TEST . lst)
(quote lst))
(TEST first second third)
=> '(first second third)
或只是
(define-syntax-rule (TEST . lst)
'lst)
答案 1 :(得分:2)
这是另一种方式,使用define-syntax
:
(define-syntax TEST
(syntax-rules ()
((_ . lst) 'lst)))
当然你可以直接引用表达式,在这里使用宏真的没有必要:
'(first second third)