我正在尝试获取某个玩家获得的相等分数的计数。例如,如果我有 score(p1, 1), score(p2, 1), score(p3, 2),我想用 result(1,2) 和 result 获得一个新的谓词occurrences(Score, Count) (2,1),因为两次得1分,而只得一次得2分。
我尝试使用以下程序计算出现次数:
getScore(S) :- 分数(P,S)。
出现次数(S,L):- L = #count{Sc:得分(P,Sc)},getScore(S)。
但是,得到的值是不正确的:occurrences(1,2),occurrences(2,2)。如上所述,分数 2 应该只有一个计数。