2016-11-20 34 views
0

假设我在swi-prolog中创建了如下的函数。在Prolog编程中始终写入初始值

function1(param) :- VALUE is 0, findValue(VALUE), write(VALUE).

然而总是打印出来。 findValue函数在逻辑上是正确的。'

是否无法使用计算的值在函数1

回答

0

忽略VALUE is 0

通过说明它的功能findValue将设置根据VALUE变量的休息,因为您提供的索赔第一是公理级真实的,其余的与它们对应。

例如,采取

func(X):- X is 0. 

如果查询func(X).它会导致X=0,因为它假定要进行分配。

但是,如果您使用像func(0).这样的号码进行查询,它将检查是否X==0,从而导致布尔答案。

+0

但是,解释器显示错误信息。 '参数没有被充分实例化。' – newbie16

+0

可能是您的'findValue'方法的一个问题,您没有包括。添加它。 – Uriel