如何检查序言中的变量是否=AnotherVariable+1

How to check whether a Variable=AnotherVariable+1 in prolog

我想在 Prolog 中有如下条件表达式并测试它。

checkNum(X,Y,helloWorld):- X=Y+1.

但是当我测试 checkNum(7,6,Z) 时它说不!我认为这个条件是正确的,但我不明白为什么它不起作用。

X=Y+1 试图统一变量 X 与术语 Y+1.

当您将 76 传递给您的过程时,它会尝试将 7 与不相等的术语 6+1 统一起来。

你想要的是评估表达式的右侧 (Y+1) 并查看它是否等于 X。 为此,您必须使用 is/2.

所以,你应该使用 X is Y+1