Estoy escribiendo un programa en el prólogo que cuente el número de veces que aparece un número en una listaContar el número de apariciones de un número en una lista
count([],X,0).
count([X|T],X,Y):- count(T,X,Z), Y is 1+Z.
count([_|T],X,Z):- count(T,X,Z).
y esto es la salida
?- 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.
es contar el mismo número varias veces
Cualquier ayuda se agradece
Consulte ['tcount/3'] (http://stackoverflow.com/a/29960878/772868) para obtener una definición lógicamente pura. – false