0

您好,我是 Prolog 的初学者,我遇到了以下问题。在这里,我有一个“数据库”,它为我提供有关学校时间表的信息,如下所示:

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

当问以下问题时 -? find(staff(NameOfTeacher,Course),Day)

答案应该是Day = (the day the course takes place)。我设法接受了这样的答案Day = (Course,Day),但这不是我想要的。有没有人知道如何做到这一点?先感谢您。

4

1 回答 1

1

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

?- Pair = (maths,monday), (_,Day) = Pair.
Pair = (maths, monday)
Day = monday
Yes
于 2014-08-30T17:27:26.263 回答