2014-08-29 43 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