Правило Пролога - Ложь?

У меня есть факты:

/**--(course,time,location)--*/

ctl('course1', 'time1','location1').
ctl('course2', 'time1','location2').
ctl('course3', 'time2','location3').

/**--Lecturer,course-*/

lc('lecturer1','course1').
lc('lecturer2','course2').
lc('lecturer1','course3').

и мое правило для лектора schedule(course,time,location) является:

schedule(Lecturer,C,T,L) :-
   lc(Lecturer,C),ctl(C,T,L).

Если я делаю:? - график ("лектор1",C,T,L). чтобы проверить расписание лектора 1, он выведет 2 группы ответов,

но если я сделаю :? - график (Лектор,C,'time1',_). чтобы проверить, кому по расписанию преподавать на time1, он должен "ложь" после вывода 2 групп ответа.

Кто-нибудь, как исправить "ложь"?

1 ответ

Там нет необходимости что-либо исправлять; false просто означает, что Пролог не может найти больше решений. Это безвредно.

Другие вопросы по тегам