写一个谓词less/2
,这样如果t1代表n1而t2代表n2,那么
less(t1, t2)
成功iff n1< N2。例如,less(s(z), s(s(s(z))))
应该
成功,less(s(z), s(z))
应该失败。如果t1是未实例化的逻辑变量,
而t2是自然数n2的正确表示,然后是谓词
应列举小于n2的所有数字。例如,查询
?- less(X, s(s(z))).
应该成功X = z
和X = s(z)
(不一定按此顺序)。
答案 0 :(得分:1)
您可以尝试以下方法:
ls(0,s(_)).
ls(s(X),s(Y)) :- ls(X,Y).
以下是一些示例运行:
?- ls(s(0),s(s(s(0)))).
Yes
?- ls(s(s(0)),s(0)).
No
再见