在Prolog编程中始终写入初始值

时间:2016-11-20 12:36:30

标签: prolog

假设我在swi-prolog中创建了类似下面的函数。

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

但是 0 始终打印出来。 findValue函数在逻辑上是正确的。'

在function1中使用计算的值是不可能的?

1 个答案:

答案 0 :(得分:0)

省略VALUE is 0

通过陈述它,函数findValue将根据VALUE设置其余变量,因为您首先提供的声明是公理级真实的声明,其余声明对应于它们。

例如,点击

func(X):- X is 0.

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

但是,如果您使用func(0).之类的数字进行查询,则会检查X==0是否为if (i == n) { println (fibonacci (n)); } else { fibonacci (n); } ,从而产生布尔答案。