如果第一个整数比第二个整数正好多1,则程序应返回true。
当前代码每次都返回false。
没有abs(X-Y)== 1行,它可以检查第二个整数是否大于第一个整数,但是它应该检查差值是否恰好为1。
expected output:
greater_than(succ(succ(0)),succ(0)).
yes
greater_than(succ(succ(0)),succ(succ(succ(0)))))
no
current code :
greater_than(succ(X),0).
greater_than(succ(X),succ(Y)) :-
abs(X-Y) == 1,
greater_than(X,Y).
答案 0 :(得分:0)
在给定 x = succ(y)的情况下, Peano 数 x 比Peano数 y 大1。 em>,所以我们可以在这里这样写:
one_greater_than(succ(X), X).
鉴于第一个参数的形状为succ(X)
,Prolog的目标是将{>函子的唯一参数与第二个谓词统一。