Я пытаюсь написать предикат, likes/2
, в манере, где он работает, как следующее:Predicate распечатывает «Неожиданный» ложь
?- 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.
См. [Эти ответы] (http://stackoverflow.com/search?q=%5Bprolog-toplevel%5D+false) – false