I want to define a relation del_all(X, L, L1)
for removing all items X
(if any) from list L
.
Sample query:
?- del_all(a, [a,b,a,c,d,a], L1).
L1 = [b, c, d]. % expected answer
I want to define a relation del_all(X, L, L1)
for removing all items X
(if any) from list L
.
Sample query:
?- del_all(a, [a,b,a,c,d,a], L1).
L1 = [b, c, d]. % expected answer
dele_all(X, [], []).
dele_all(X, [H|T], R) :-
H = X,
dele_all(X, T, R).
dele_all(X, [H|T], [H|R]) :-
dif(H, X),
dele_all(X, T, R).
del_all(_,[],[]).
del_all(Item,[Item|Rest],RRest) :-
!,
del_all(Item,Rest,RRest).
del_all(Item,[OtherItem|Rest],[OtherItem|RRest]) :-
del_all(Item,Rest,RRest).
Simple as that.