gpt4 book ai didi

java - tuProlog 未知行为

转载 作者:行者123 更新时间:2023-11-30 09:38:44 25 4
gpt4 key购买 nike

我正在使用 tuProlog 将 Prolog 与 Java 集成,为此我定义了一个包含以下代码的 prolog.pl 文件:

go:-write('hello world!'),nl. 

然后,在我的 Java 项目中,我有调用它的主类:

Prolog engine = new Prolog();

Theory theory = new Theory(new FileInputStream("prolog.pl"));

try {
engine.setTheory(theory);
} catch (InvalidTheoryException ex) {

}
SolveInfo solution = engine.solve("go.");

if (solution.isSuccess()) {

System.out.println(solution.getSolution());
}

这段代码应该输出“hello world”,然而,它输出“go”,为什么会有这种行为?

最佳答案

终于发现行为一点也不不稳定:)

解决方案是在调用 Solve 方法之前添加此代码。

engine.addOutputListener(new OutputListener() {
@Override
public void onOutput(OutputEvent e) {
finalResult += e.getMsg();

}
});

finalResult 只是一个全局变量,包含由 Prolog Write 指令生成的返回字符串。

关于java - tuProlog 未知行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10002906/

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