我正在使用 swi-prolog。我只是试图遵循“序言的艺术”一书中的例子,但我没有得到正确的结果。恐怕这可能是由于 s/1 谓词。我什至在 swipl 的文档中都找不到 s/1,唯一类似的谓词是 succ/2:http ://www.swi-prolog.org/pldoc/man?predicate=succ/2这可以t 的使用方式与 s/1 相同。我更喜欢使用 s 谓词。
这是判断一个数是否为自然数的程序:
natural_number(0).
natural_number(s(X)) :- natural_number(X).
但是, natural_number(1) 例如产生错误。这里有什么问题?