我发现自己定义的语法参数除了名称之外具有相同的定义,因此我决定编写一个宏以使其更简单:
(define-syntax (test-case-parameter stx)
(syntax-parse stx
[(_ parameter:id)
#'(define-syntax-parameter parameter
(lambda (stx)
(raise-syntax-error stx "Can only be used inside test-case.")))]))
(test-case-parameter a)
(test-case-parameter b)
(test-case-parameter c)
但是,不必重复宏名称,我希望能够只写:
(test-case-parameter a b c)
但是我不知道如何使用普通的省略号语法来做到这一点,因为我需要将所有内容包装在 abegin
中,这将创建一个新的范围,并且我想要所有的语法参数,就好像我已经把它们写在了顶部等级。实现这一目标的正确方法是什么?