我写序言中的一个程序,计算一个列表计数一批出现的次数在列表
count([],X,0).
count([X|T],X,Y):- count(T,X,Z), Y is 1+Z.
count([_|T],X,Z):- count(T,X,Z).
一批出现的次数,这是输出
?- count([2,23,3,45,23,44,-20],X,Y).
X = 2,
Y = 1 ;
X = 23,
Y = 2 ;
X = 23,
Y = 1 ;
X = 3,
Y = 1 ;
X = 45,
Y = 1 ;
X = 23,
Y = 1 ;
X = 44,
Y = 1 ;
X = -20,
Y = 1 ;
false.
它的计数相同数目的好几倍
任何帮助表示赞赏
有关逻辑纯定义,请参见['tcount/3'](http://stackoverflow.com/a/29960878/772868)。 – false 2015-06-09 08:35:25