作为失败的否定通常被认为是不纯的。否定失败所需的 Prolog 解释器必须实现 SLDNF,它是 SLD 的扩展。
谓词(\=)/2
例如在 library(reif) 中使用。它可以通过否定作为失败引导,如下所示,但通常是内置的:
X \= Y :- \+ X = Y.
是否可以(\=)/2
作为纯谓词来实现?仅使用纯 Prolog,即仅使用一阶喇叭子句?
作为失败的否定通常被认为是不纯的。否定失败所需的 Prolog 解释器必须实现 SLDNF,它是 SLD 的扩展。
谓词(\=)/2
例如在 library(reif) 中使用。它可以通过否定作为失败引导,如下所示,但通常是内置的:
X \= Y :- \+ X = Y.
是否可以(\=)/2
作为纯谓词来实现?仅使用纯 Prolog,即仅使用一阶喇叭子句?