1

我一直在使用 jpl 从 java 调用 prolog。我在java中使用以下代码从prolog中获取X的值。

String t4 = "myNumber(X)";
Query q4 = new Query(t4);
System.out.println( "first solution of " + t4 + ": X = " + q4.oneSolution().get("X"));

我的解决方案是——

first solution of myNumber(X): X = '.'(2, [])--which is true.

我现在想做的是从解决方案中获取值 2 并将数字加倍。谁能帮助我如何处理?

4

1 回答 1

0

oneSolution() 返回一个变量名到术语绑定的哈希表(他们说)。然后你必须检查这个术语(未经测试):

Term listTerm = q4.oneSolution().get("X");
Term firstListItem = listTerm.arg(1);
double value = firstListItem.doubleValue(); // alternatively, use intValue() or so

另请查看Term的文档。

编辑:修正错误

于 2011-10-11T15:29:10.747 回答