1

less/2t1がn1を表し、t2がn2を表す 場合、 less(t1, t2)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)ます(必ずしもこの順序である必要はありません)。

4

1 に答える 1

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

さよなら

于 2014-01-08T15:57:37.327 に答える