2017-07-29 20 views
1

JSCLは、Common Lisp(CL)の実装の1つです。JSCLメソッドからCommon Lispコードを呼び出す方法

それはCLOS、フォーマット以外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で、このような方法を見つけたいと思います。

答えて

2

JSコンソールからCommon 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)")))) 
を印刷する機能を定義します
関連する問題