我有以下知识库,应该添加两个参数并给出结果:
add(0,X,X).
add(succ(X),Y,succ(R)):- add(X,Y,R).
现在这是我的查询:
?- add(succ(succ(succ(0))), succ(succ(0)), Result).
0 不与第一个参数统一,因此它转到第二个 add/3 子句。现在这是我无法弄清楚的事情。这本书(LPN)告诉我,最外层的成功因素被排除在第一个参数之外,但我不知道为什么?在我看来,它增加了一个 succ 仿函数。有人可以解释一下为什么要剥离它吗?
提前致谢!
卢克