delete_all example
/* delete_all(List,E,Result) means that Result is a a list just like List except all elements E are missing. */
delete_all([E|Tail], E, Res) :- delete_all(Tail, E, Res).
delete_all([Head|Tail], E, [Head|Res]) :- delete_all(Tail, E, Res).