私はswi-prologを使用しています。本「プロローグの芸術」の例に従おうとしているだけですが、正しい結果が得られません。これは s/1 述語が原因である可能性があります。swipl のドキュメントで s/1 を見つけることさえできません。類似した唯一の述語は succ/2 です: http://www.swi-prolog.org/pldoc/man?predicate=succ/2 This can' t は s/1 と同じように使用できます。私はs述語を持っている方がずっと好きです。
これは、数値が自然数かどうかを判断するためのプログラムです。
natural_number(0).
natural_number(s(X)) :- natural_number(X).
ただし、たとえば natural_number(1) は false になります。ここで何が問題なのですか?