Mat*_*att 3 scheme ellipsis pattern-matching racket syntax-object
例如:
(syntax-case #'(a b c d) ()
((x ...) (list #'x ...))
Run Code Online (Sandbox Code Playgroud)
在示例中,(list #'x ...)显然不起作用,但我可以做什么来输出相当于(list #'a #'b #'c #'d)?
这是一种方法:
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>)
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅语法对象操作部分和导出的函数syntax/stx.