まず第一に、私はプロローグがまったく初めてで、M が X よりも N と異なる場合に真である述語 length(M,X,N) を書き込もうとしています。
M(=dec.5) と N(=dec.2) が X(=dec.2) より大きく異なる場合に真となる次のテストケースを作成しました。5 と 2 の差は 3 で、2 より大きいため、この場合は真です。
?- length(s(s(s(s(s(0))))), s(s(0)), s(s(0))).
true .
私はプロローグが再帰的に機能することを知っているので、C のような言語のように条件 (<,> など) を使用してそのような述語を構築できるかどうか、またはプロローグでこれを行う別の方法があるかどうか疑問に思っています。この単純な質問で申し訳ありませんが、プロローグを始めたばかりです。