3

例如:

(syntax-case #'(a b c d) ()
  ((x ...) (list #'x ...))

在示例中,(list #'x ...)显然不起作用,但我能做些什么来输出等价的(list #'a #'b #'c #'d)

4

1 回答 1

5

这是一种方法:

Welcome to Racket v5.90.0.6.
-> (syntax-case #'(a b c d) ()
     ((x ...) (syntax->list #'(x ...))))
'(#<syntax:5:16 a> #<syntax:5:18 b> #<syntax:5:20 c> #<syntax:5:22 d>)

有关更多信息,请参阅语法对象操作部分和导出的函数syntax/stx

于 2013-08-15T15:11:58.440 回答