1

我有事实:

/**--(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)。检查讲师1的日程安排,它将输出2组答案,

但如果我这样做: ?- 时间表(讲师,C,'time1',_)。要检查谁安排在 time1 教什么,在输出 2 组答案后应该为“假”。

有没有人如何修复“假”?

4

1 回答 1

3

无需修复任何东西;这false只是意味着 Prolog 找不到更多的解决方案。它是无害的。

于 2012-12-07T10:20:19.890 回答