parenscript宏是否等效于macroexpand或macroexpand-1?执行(ps (some macro expression))
会显示生成的javascript,但有时候在将parenscript转换为javascript之前看到它是很好的。
答案 0 :(得分: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