woman(lisa).
woman(maggie).
parents(lisa , homer, marge).
parents(maggie, homer, marge).
sister(X, Y) :-
X \= Y,
woman(X),
parents(X, P, M),
parents(Y, P, M).
当我跑了下面的查询,我没有想到失败(但得到它)。为什么这个prolog程序返回false?
?- sister(lisa, X).
false. % expected result: X = maggie
为什么我看到这种行为?
'(\ =)/ 2'不是纯逻辑关系。改为使用纯谓词'dif/2'。 '(\ =)/ 2'的问题简而言之:'? - X \ = Y,X = a,Y = b.'产生** false **,但是'X = a,Y = b,X \ = Y' **成功**。 – mat