有人可以向我解释为什么是:
notmarried(P) :- \+(married(P)), male(P).
然后不同:
notmarried(P) :- male(P), \+(married(P)).
好问题!
答案与逻辑上的纯正有关:在Prolog中,否定被实现为失败的否定。总的来说,目标\+ G
指出了G
目前无法证明的目标-G
从逻辑上讲这不是错误的。
因此,您编写的连词可能不是可交换的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句