different(X,X) :- !,
fail.
diferent(_,_).
问题在于,如果我在Prolog shell中尝试执行以下查询,我总是会得到FALSE:
[debug] 10 ?- different(a,b).
false.
[debug] 11 ?- different(a,a).
false.
正如您所看到的,第一个查询应该说TRUE,因为a与b不匹配。
为什么?
different(X,X) :- !,
fail.
diferent(_,_).
问题在于,如果我在Prolog shell中尝试执行以下查询,我总是会得到FALSE:
[debug] 10 ?- different(a,b).
false.
[debug] 11 ?- different(a,a).
false.
正如您所看到的,第一个查询应该说TRUE,因为a与b不匹配。
为什么?
将diferent(_,_)更改为different(_,_), 这是一个拼写错误。
由于第二个谓词与您的查询不匹配,因此它未被检查。
程序应该是:
different(X,X) :- !,fail.
different(_,_).