访问prolog列表术语

时间:2011-10-10 20:27:07

标签: prolog jpl

我一直在使用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并将数字加倍。 任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

oneSolution()返回变量名到项绑定(they say)的哈希表。然后你必须检查术语(未经测试):

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

另请查看Term的文档。

修改:修正了错误