语法解析中非语法的语法

时间:2018-12-12 07:41:15

标签: racket

有人可以指出我该如何用语法解析/大小写形式写这个吗?

[(list e ...) #`(list #,(f #'e) ...)]

基本上,我希望列表中的每个元素都由f以不语法的方式进行单独处理。我不认为以上是正确的语法?

1 个答案:

答案 0 :(得分:1)

您可以使用unsyntax-splicing(可以缩写为#,@)将返回列表表达式的结果嵌入到外部列表的各个元素中。然后,您可以使用map过程将f应用于(syntax->list #'(e ...))表达式返回的列表的所有元素。最后,它看起来像这样:

#`(list #,@(map f (syntax->list #'(e ...))))