如何检查序言中的变量是否=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
.
当您将 7
和 6
传递给您的过程时,它会尝试将 7
与不相等的术语 6+1
统一起来。
你想要的是评估表达式的右侧 (Y+1
) 并查看它是否等于 X
。
为此,您必须使用 is/2
.
所以,你应该使用 X is Y+1
我想在 Prolog 中有如下条件表达式并测试它。
checkNum(X,Y,helloWorld):- X=Y+1.
但是当我测试 checkNum(7,6,Z) 时它说不!我认为这个条件是正确的,但我不明白为什么它不起作用。
X=Y+1
试图统一变量 X
与术语 Y+1
.
当您将 7
和 6
传递给您的过程时,它会尝试将 7
与不相等的术语 6+1
统一起来。
你想要的是评估表达式的右侧 (Y+1
) 并查看它是否等于 X
。
为此,您必须使用 is/2
.
所以,你应该使用 X is Y+1