2012-12-07 60 views
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). 

如果我這樣做: - 時間表( 'lecturer1',C,T,L)。檢查什麼是lecturer1的時間表,它會輸出兩組答案,

,但如果我這樣做: - 時間表(講師,C,「時間1」,_)。檢查誰按計劃教什麼1,輸出2組答案後它會「假」。

有沒有人如何解決「假」?

回答

3

沒有必要修復任何東西; false只是意味着Prolog無法找到更多解決方案。這是無害的。