Правило Пролога - Ложь?
У меня есть факты:
/**--(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
просто означает, что Пролог не может найти больше решений. Это безвредно.