如何解决如何评估传递给`parenscript:ps`宏的代码?
如何评估Parenscript中传递给ps
宏的代码?
(let ((x 1))
(format nil "~a" (parenscript:ps x)))
;; => "x;" but I would like "1;"
我知道ps
是一个宏,是不进行评估的原因,但是如何评估传递给ps
宏的代码?
解决方法
您使用ps:lisp
的示例:
(let ((x 1))
(format nil "~a" (ps:ps (ps:lisp x))))
"1;"
它在文档的第一部分中进行了介绍:https://common-lisp.net/project/parenscript/reference.html#section-ps-compiler
,我明白了:
(defmacro lisp-to-js (lisp)
(eval ``(parenscript:ps,lisp)))
(let ((x 1))
(format nil "~a" (lisp-to-js x)))
;; => "1;"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。