Deletes an element from a list, first occurrence ?- delete(a,[a,c,[a,b],f],R). R=[c,[a,b],f] ?- delete(X,[a,b,c],R). X = a R = [b,c] X = b R = [b,c] X = c R = [a,b] delete(X,[X|T],T). delete(X,[Y|T],[Y|R]):- delete(X,T,R).
Deletes all elements from a list found in a given list ?- delete_list([1,2,3],[1,4,2,5,3,7],R). R = [4,5,7]. ?- delete_list(X,[a,b],R). X = [] R = [a,b] X = [a] R = [b] X = [a,b] R = [] X = [b] R = [a] X = [b,a] R = [] delete_list([],L1,L1). delete_list([H|T],L1,L3):- delete(H,L1,L2),delete_list(T,L2,L3).
Permutation of a list ?- permut([a,b,c],L). L = [[a,b,c],[a,c,b],b,a,c],[b,c,a],[c,a,b],[c,b,a]] permut(L,R):- findall(X,delete_list(X,L,[]),R).