/* appartenenza ad una lista */
membro(X,[X|_]).
membro(X,[_|Y]) :- membro(X,Y).
/* appartenenza ad una lista - deterministico*/
membro1(X,[X|_]) :- !.
membro1(X,[_|C]) :- membro1(X,C).
/* possibili goal:
?- membro(y,[a,y,b,y]).
La avviso che il Prolog risponde "No" diversamente dalla soluzione.