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

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

/**--(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).

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

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

У кого-нибудь как исправить "фальшивку"?


person Layla    schedule 07.12.2012    source источник


Ответы (1)


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

person Fred Foo    schedule 07.12.2012