我在序言中有以下奇数和偶数生成器
even(0).
even(X) :- odd(Y), X is Y+1, X>0.
odd(1).
odd(X) :- even(Y), X is Y+1, X>1.
我想了解为什么我不能将这些函数用作测试人员,即?even(3).这会导致无限循环。
这不是我打电话时发生的事情?even(3).吗?
X被实例化为3. 尝试找到任何奇怪Y的(从 开始0)。发现Y=1。现在是我不明白的部分。我不知道当它必须处理该子句时会发生什么X is Y+1。考虑X已经给出了,这里发生了什么?