Я пытаюсь получить количество равных очков, полученных каким-либо игроком. Например, если у меня есть оценка (p1, 1), оценка (p2, 1), оценка (p3, 2), я хотел бы получить новые вхождения предиката (оценка, количество) с результатом (1,2) и результатом (2,1), так как оценка 1 была получена два раза, а оценка 2 только один раз.
Я попытался подсчитать количество вхождений с помощью следующей программы:
getScore(S):- счет(P,S).
вхождения(S,L):- L = #count{Sc : score(P,Sc)}, getScore(S).
Однако полученные значения неверны: вхождения (1,2), вхождения (2,2). Оценка 2 должна иметь только один счет, как указано выше.