Prolog调度没有按';'每次

时间:2018-05-09 13:30:47

标签: prolog prolog-setof

我有以下文件,其中谓词出现,表示每个学生都参加某个课程(第一个参数:Student_ID,第二个参数:Course_ID)。

attends(476, c216).
attends(478, c216).
attends(484, c216).
attends(487, c216).
attends(491, c216).

我想创建一个谓词函数,如下所示:

function(W1,L,E):- 
    bagof(C,attends(Y,C), L1),intersect(L1,W1,L),length(L,E).

    %W1 : Week-1 (List: contains courses that will be exams on).
    %L : List of intersection between students courses and the ones that 
    %  will be exams on that week(W1). (It is returned only for
    %  debugging, i don't actually need this
    % E : INT : Number of courses the student will be examined on the 1st week

其中W1(第1周)将是一个包含3门课程的列表(例如W1 = [c216,c205,c902]),E将是学生将被检查的课程数。

问题是每个学生都会有回溯所以我必须按“;”。因此,对于每个学生,有一个不同的E.而我想要的是将所有这些E值放在一个列表中而不按“;”,然后看看有多少E值大于2(> ; 2)

0 个答案:

没有答案