2014-08-29 59 views
0

你好我是Prolog的初學者,我陷入了下面的問題。 這裏有雲,我有一個「數據庫」,這給了我有關學校安排 是這樣的:從prolog中的列表中檢索答案

school(NameOfTeacher,([(Course,Day) ......]).

當詢問以下 -? find(staff(NameOfTeacher,Course),Day)

答案應該是Day = (the day the course takes place)。我設法採取像Day = (Course,Day)這樣的答案,但它不是我想要的。有沒有人有任何想法如何做到這一點?先謝謝你。

回答

1

記住,Prolog的統一是一種雙向模式匹配的,所以你可以用它來創建都和分解數據結構:

?- Pair = (maths,monday), (_,Day) = Pair. 
Pair = (maths, monday) 
Day = monday 
Yes 
+0

感謝您的答覆,但我怕我仍不很沒有得到它,結果我得到了我到目前爲止所嘗試的是以下形式:例如? - 查找(工作人員(約翰,數學),日)。日=(數學,星期一),並繼續其餘的課程,日=(物理,星期二),然後日=(化學,星期五)。我很確定問題在於我要求答案的方式,但無法弄清楚 – stesioc 2014-08-30 17:52:12