【发布时间】:2015-01-28 00:50:18
【问题描述】:
我正在尝试编写谓词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.
【问题讨论】: