PROLOTELELE Elemento de la lista

% output empty list if an element is to be deleted from an empty list
delete_all(_,[],[]).

% if current list head = element, call same predicate without list head to loop
% through input list and don't update output list.
delete_all(X,[X|L],L1):-
    delete_all(X,L,L1).
    
% if current list head != element, call same predicate without list head to loop
% through input list and make head of output list = head of input list.
delete_all(X,[H|L],[H|L1]):-
    X\=H,
    delete_all(X,L,L1).
a literal child