parenscript 宏是否有等效于 macroexpand 或 macroexpand-1 的方法?Doing(ps (some macro expression))
将显示生成的 javascript,但有时最好在 parenscript 转换为 javascript 之前看到它。
问问题
171 次
1 回答
5
在 parenscript 的compiler.lisp
文件中,有函数
ps-macroexpand-1
和ps-macroexpand
. 不幸的是,它们不是由 parenscript 包导出的。无论如何,您都可以使用双冒号调用它们。
例如,
(defpsmacro aif (test true &rest false)
`(let ((it ,test))
(if it ,true ,@false)))
(ps::ps-macroexpand-1 '(aif 3 it))
;;=>
(LET ((IT 3))
(IF IT
IT))
T
于 2015-11-26T13:04:03.783 回答