在许多 Prolog 指南中,以下代码用于说明 Prolog 中的“失败否定”。
not(Goal) :- call(Goal), !, fail. not(Goal).
然而,这些相同的教程和文本警告说,这不是“逻辑否定”。
问题:有什么区别?
我试图进一步阅读这些文本,但它们没有详细说明其中的区别。
logic prolog negation negation-as-failure
logic ×1
negation ×1
negation-as-failure ×1
prolog ×1