count_occurrences(X,[],0). count_occurrences(X,[X|Y],Z) :- count_occurrences(X,Y,Z1), Z is Z1+1. count_occurrences(X,[_|Y],Z) :- count_occurrences(X,Y,Z). ll([],0). ll([_|Y],K) :- ll(Y,J), K is J + 1. ws([]). ws([X|Y]) :- put(X), ws(Y).