请我在prolog中是新手,有些身体可以帮助我做这个练习

时间:2012-10-01 21:12:52

标签: prolog successor-arithmetics

写一个谓词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 = zX = s(z)(不一定按此顺序)。

1 个答案:

答案 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

再见