Findall идет не так, как ожидалось

Я получил это правило: copiloting(Dev1, Dev2, Copiloting, AtRev) который дает мне номер Copiloting для двух человек Dev1 а также Dev2,

Я хотел бы найти все Copiloting значения для каждой пары (Dev1, Dev2) возможно поэтому я сделал это правило:

allCopiloting(L, AtRev) :- 
    findall((Dev1, Dev2, Copiloting),
            copiloting(Dev1, Dev2, Copiloting, AtRev), 
            L). 

Но когда я делаю это, он возвращает мне это:

?- maxRevisions(Rev), allCopiloting(L, Rev).
Rev = 247,
L = [ (_G98355, _G98358, 1)].

Вот правило копирования:

copiloting(Dev1, Dev2, Copiloting, AtRev) :- 
findall(Tested, 
    (addReference(Test, 'calls', Tested, R3, _),
    create(Test, 'method', _, Dev1), 
    isTestMethod(Test, AtRev),
    create(Tested, 'method', R2, Dev2), 
    \+ (remReference(Test, 'calls', Tested, R4, _),
        R4 > R3)),
    TestedList),
    list_to_set(TestedList, TestedSet), 
    testedMethods(AllTestedSet, AtRev),
    length(TestedSet, A),
    length(AllTestedSet, B), 
    Copiloting is A / B. 

Я не очень понимаю, почему, я хотел бы полный список со всеми возможными парами людей. Я что-то пропустил?

0 ответов

Другие вопросы по тегам