Javascript 如何从JSCL方法调用公共Lisp代码
是公共Lisp(CL)的实现之一 它涵盖了除CLO、格式等之外的许多CL特性 它与其他CL实现一样具有REPL 我想知道如何从JS端调用CL代码 我想这样做:Javascript 如何从JSCL方法调用公共Lisp代码,javascript,lisp,common-lisp,Javascript,Lisp,Common Lisp,是公共Lisp(CL)的实现之一 它涵盖了除CLO、格式等之外的许多CL特性 它与其他CL实现一样具有REPL 我想知道如何从JS端调用CL代码 我想这样做: // set the CL codes as string var codes = "(defun f1(x) (+ x 1) ) (f1 99)"; // call CL codes from JSCL JSCL.CL.call(codes); => 100 我想在JSCL中找到这样的方法。您可以从JS控制台调用公共Lisp函
// set the CL codes as string
var codes = "(defun f1(x) (+ x 1) )
(f1 99)";
// call CL codes from JSCL
JSCL.CL.call(codes);
=> 100
我想在JSCL中找到这样的方法。您可以从JS控制台调用公共Lisp函数和特殊表单。 您只需要在浏览器的控制台上键入以下代码 在下面的示例中,第一个代码定义了返回加值1的函数。第二个代码调用函数并打印计算值100
jscl.CL.PRINT.fvalue.call(this, jscl.internals.pv, jscl.CL.EVAL.fvalue.call(this, jscl.internals.pv, jscl.packages["COMMON-LISP"].symbols["READ-FROM-STRING"].fvalue.call(this, jscl.internals.pv, jscl.internals.js_to_lisp("(defun f1(x)(+ x 1))"))))
jscl.CL.PRINT.fvalue.call(this, jscl.internals.pv, jscl.CL.EVAL.fvalue.call(this, jscl.internals.pv, jscl.packages["COMMON-LISP"].symbols["READ-FROM-STRING"].fvalue.call(this, jscl.internals.pv, jscl.internals.js_to_lisp("(f1 99)"))))
新方法暴露出来了 如果在JS控制台上键入以下代码,将得到12
jscl.evaluateString((*34)”)