Racket 语法分析中的unsyntax语法

Racket 语法分析中的unsyntax语法,racket,Racket,有人能告诉我如何用语法解析/case编写这个吗 [(列表e…)`(列表e…),(列表f…)] 基本上,我希望列表中的每个元素都由unsyntax中的f单独处理。我认为上面的语法不正确?您可以使用非同步拼接(可以缩写为#,@)将列表返回表达式的结果作为外部列表的单个元素嵌入。然后您可以使用map过程将f应用于(语法->列表#'(e…)表达式返回的列表的所有元素。最后,它将是这样的: #`(list #,@(map f (syntax->list #'(e ...))))

有人能告诉我如何用语法解析/case编写这个吗


[(列表e…)`(列表e…),(列表f…)]


基本上,我希望列表中的每个元素都由unsyntax中的
f
单独处理。我认为上面的语法不正确?

您可以使用
非同步拼接
(可以缩写为
#,@
)将列表返回表达式的结果作为外部列表的单个元素嵌入。然后您可以使用
map
过程将
f
应用于
(语法->列表#'(e…)
表达式返回的列表的所有元素。最后,它将是这样的:

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