gpt4 book ai didi

java - 如何使用 Java 获取 ABCL 中的值

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:28:15 26 4
gpt4 key购买 nike

我正在搜索 API 以使用 Java 在 JVM 中的 Common Lisp 语言的 Armed Bear Common Lisp (ABCL) 实现中处理值。

它在函数返回(仅)列表或字符串时有效。

当它返回多个 values 时我只能获取第一个返回值。

我不知道如何获取其他值。

这是我的 test.lisp 文件:

(defun get-list ()
(list "abc" 12 'a 'b))

(defun get-value ()
(values "abc" 12 'a 'b))

我的 Java 代码是:

public static void main(String[] args) throws Exception {
Interpreter interpreter = Interpreter.createInstance();

LispObject lobj = interpreter.eval("(load \"test.lisp\")");
org.armedbear.lisp.Package defaultPackage = Packages.findPackage("CL-USER");

Symbol myFunctionSym = defaultPackage.findAccessibleSymbol("GET-LIST");
Function myFunction = (Function) myFunctionSym.getSymbolFunction();
LispObject o = myFunction.execute();

System.out.println(o.listp()); // this return false

Symbol myFunctionSym2 = defaultPackage.findAccessibleSymbol("GET-VALUE");
Function myFunction2 = (Function) myFunctionSym.getSymbolFunction();

LispObject o2 = myFunction.execute();

}

最佳答案

您要查找的是 multiple-value-bind 还是 nth-value,或者这个问题还有其他内容吗?

关于java - 如何使用 Java 获取 ABCL 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18455641/

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