【发布时间】:2011-04-12 18:31:35
【问题描述】:
我正在创建一种特定领域的语言。其中一个宏调用如下所示:
(my-macro foo (bar "baz" qux) 耶)
按照我编写 my-macro 的方式,这里的第二个参数应该是一对括号内的字符串列表。因此,只要 bar 和 qux 计算为字符串,my-macro 就可以工作。假设它们以“bar”和“qux”同名计算,而 my-macro 将第二个参数视为“bar baz qux”。
但现在我意识到我真的希望“baz”保留它的引号;我希望 my-macro 将第二个参数视为“bar \"baz\" qux”。这可能吗?在 my-macro 中,我可以知道什么时候可以按原样使用字符串,什么时候需要加回双引号?
提前致谢!
【问题讨论】:
标签: macros common-lisp argument-passing