【发布时间】:2013-08-17 19:30:20
【问题描述】:
例如:
(syntax-case #'(a b c d) ()
((x ...) (list #'x ...))
在示例中,(list #'x ...) 显然不起作用,但是如何输出与 (list #'a #'b #'c #'d) 等效的内容?
【问题讨论】:
标签: scheme pattern-matching racket ellipsis syntax-object
例如:
(syntax-case #'(a b c d) ()
((x ...) (list #'x ...))
在示例中,(list #'x ...) 显然不起作用,但是如何输出与 (list #'a #'b #'c #'d) 等效的内容?
【问题讨论】:
标签: scheme pattern-matching racket ellipsis syntax-object
这是一种方法:
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 object operations 部分和syntax/stx 导出的函数。
【讨论】: