Я пытаюсь написать предикат 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).
Теперь проблема, с которой я сталкиваюсь, заключается в том, что, хотя моя программа работает так, как предполагается, по большей части она выводит false в конце, и я не понимаю, почему. Вот полный вывод:
?- likes(A,alan).
A = lindsay ;
A = chloe ;
A = cheyanne ;
A = britney ;
false.