从prolog中的列表中检索答案

时间:2014-08-29 23:24:58

标签: list prolog logic-programming

您好,我是Prolog的初学者,我遇到了以下问题。 在这里,我有一个"数据库"这给了我关于学校时间表的信息 像这样的东西:

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

询问以下内容时 -? find(staff(NameOfTeacher,Course),Day)

答案应为Day = (the day the course takes place)。我设法得到像Day = (Course,Day)这样的答案,但这不是我想要的。有谁知道如何做到这一点?提前谢谢。

1 个答案:

答案 0 :(得分:1)

请记住,Prolog统一是一种双向模式匹配,因此您可以使用它来创建和分解数据结构:

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