Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从JSCL方法调用公共Lisp代码_Javascript_Lisp_Common Lisp - Fatal编程技术网

Javascript 如何从JSCL方法调用公共Lisp代码

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函

是公共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函数和特殊表单。 您只需要在浏览器的控制台上键入以下代码

在下面的示例中,第一个代码定义了返回加值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)”)