Есть ли способ вставить сырой javascript в код 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, чтобы вставить строку без кавычек?

1 ответ

Решение

Добавил это в файл не-cl.lisp parenscript:

(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;
})();"
Другие вопросы по тегам