delete(X, [X | Rest], Rest). delete(X, [Y | Rest], [Y | NewRest]) :- delete(X, Rest, NewRest).