Prolog 请问我是新手,有人能帮我做这个练习吗

Prolog 请问我是新手,有人能帮我做这个练习吗,prolog,successor-arithmetics,Prolog,Successor Arithmetics,写一个谓词less/2,如果t1表示n1,t2表示n2,那么 less(t1,t2)n1

写一个谓词
less/2
,如果t1表示n1,t2表示n2,那么
less(t1,t2)
n1less(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)
(不一定按该顺序进行)。

您可以尝试以下操作:

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
再见

的常用符号是
0
s(0)
s(0))
等,而不是
0
z
。看看标签下面的其他问题!