gpt4 book ai didi

java - 如何通过从 Java 传递参数来运行 lisp 脚本

转载 作者:太空宇宙 更新时间:2023-11-03 19:04:41 25 4
gpt4 key购买 nike

我正在尝试通过从 Java 传递参数来运行 lisp 脚本。

例如:
在下面的脚本中,x 的值应该从 Java 代码传递。

(defun double (x) (* x 2))

能否请您举一些例子?

最佳答案

如果您对 Common Lisp 感兴趣,那里可能有很多实现。我知道的一个是 Armed Bear Common Lisp并根据他们的 user documentation您可以混合主机代码(例如 Java 库和类)和 CL 代码。

从 Java 运行 Lisp 代码:

Interpreter interpreter = Interpreter.createInstance();
interpreter.eval("(load \"my-lisp-code.lisp\")");

Symbol myFunctionSym =
defaultPackage.findAccessibleSymbol(
"MY-FUNCTION");
Function myFunction =
myFunctionSym.getSymbolFunction();
Cons list =
(Cons) myFunction.execute(
Fixnum.getInstance(64),
Fixnum.getInstance(64));

从 Common Lisp 调用 Java:

public class Main {
public int addTwoNumbers(int a, int b) {
return a + b;
}
}
(defun void-function (param)
(let* ((class (jclass "Main"))
(intclass (jclass "int"))
(method (jmethod class "addTwoNumbers" intclass intclass))
(result (jcall method param 2 4)))
(format t "in void-function, result of calling addTwoNumbers(2, 4): ~a~%" result)))

Lisp Wiki page关于 CL 和 Java 集成还有其他解决方案。我对斗篷特别有希望。由于ABCL实现了在JVM上运行的CL,Cloak似乎在SBCL下实现了JVM。

关于java - 如何通过从 Java 传递参数来运行 lisp 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46611132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com