Common lisp 有没有办法在parenscript代码中插入原始javascript?

Common lisp 有没有办法在parenscript代码中插入原始javascript?,common-lisp,parenscript,Common Lisp,Parenscript,下面的代码将第三方生成的javascript作为字符串插入,需要对其求值 (ps (let ((x (lisp (json:encode-json-alist-to-string '((:a . 1) (:b . 2)))))))) "(function () { var x = '{\"a\":1,\"b\":2}'; return null; })();" 有没有办法告诉parenscript插入不带引号的字符串?将此添加到parenscr

下面的代码将第三方生成的javascript作为字符串插入,需要对其求值

(ps (let ((x (lisp (json:encode-json-alist-to-string
                 '((:a . 1) (:b . 2))))))))

"(function () {
   var x = '{\"a\":1,\"b\":2}';
    return null; })();"

有没有办法告诉parenscript插入不带引号的字符串?

将此添加到parenscript的non-cl.lisp文件中:

(define-expression-operator lisp-raw (lisp-form)
  `(ps-js:escape
    ,lisp-form))

(defun lisp-raw (x) x)
结果:

(ps (let ((x (ps::lisp-raw (json:encode-json-alist-to-string
                 '((:a . 1) (:b . 2))))))))
"(function () {
    var x = {\"a\":1,\"b\":2};
    return null;
})();"