如何评估传递给 `parenscript:ps` 宏的代码?
How to evaluate the code passed to the `parenscript:ps` macro?
如何评估传递给 Parenscript 中的 ps
宏的代码?
(let ((x 1))
(format nil "~a" (parenscript:ps x)))
;; => "x;" but I would like "1;"
我知道 ps
是一个宏并且是不评估的原因,但是我如何评估传递给 ps
宏的代码?
我知道了:
(defmacro lisp-to-js (lisp)
(eval ``(parenscript:ps ,,lisp)))
(let ((x 1))
(format nil "~a" (lisp-to-js x)))
;; => "1;"
你的例子使用 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
如何评估传递给 Parenscript 中的 ps
宏的代码?
(let ((x 1))
(format nil "~a" (parenscript:ps x)))
;; => "x;" but I would like "1;"
我知道 ps
是一个宏并且是不评估的原因,但是我如何评估传递给 ps
宏的代码?
我知道了:
(defmacro lisp-to-js (lisp)
(eval ``(parenscript:ps ,,lisp)))
(let ((x 1))
(format nil "~a" (lisp-to-js x)))
;; => "1;"
你的例子使用 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