我正在尝试以likes/2
如下方式编写谓词 , :
?- likes(A,alan).
A = lindsay ;
A = chloe ;
A = cheyanne ;
A = britney ;
这是我解决问题的方法:
% Define your facts:
combo(lindsay,alan).
combo(chloe,alan).
combo(cheyanne,alan).
combo(britney,alan).
% Define your predicate:
likes(A,B) :- combo(A,B); combo(B,A).
现在,我面临的问题是,虽然我的程序按预期运行,但在大多数情况下,它最后打印出一个错误,我不明白为什么。这是完整的输出:
?- likes(A,alan).
A = lindsay ;
A = chloe ;
A = cheyanne ;
A = britney ;
false.