3

失敗としての否定は、通常、不純であると見なされます。失敗としての否定に必要な Prolog インタプリタは、SLD の拡張である SLDNF を実現する必要があります。

述語(\=)/2は、たとえばライブラリ (reif) で使用されます。次のように失敗として否定を介してブートストラップできますが、多くの場合組み込みです。

X \= Y :- \+ X = Y.

(\=)/2純粋な述語として実装することは可能でしょうか? 純粋な Prolog のみ、つまり一次ホーン節のみを使用していますか?

4

1 に答える 1