【发布时间】:2019-12-22 19:31:05
【问题描述】:
我是 Prolog 的新手,并尝试理解为什么这个非常简单的程序会返回 2 个解决方案:真和假。对我来说,这应该只返回true,为什么也返回false?
predicate1(_,[]).
predicate1(X,[_|T]) :- predicate1(X,T).
?- predicate1(abc,[]).
感谢您的帮助。
【问题讨论】:
-
这会被问到很多。首先要意识到谓词不是返回真假。它是成功还是失败。当它成功并找到解决方案时,它会显示
true。如果它回到一个选择点寻找另一个解决方案但没有找到,那么它会失败(找到另一个解决方案)\并说false。