del1(_, [], []). del1(X, [X | Tail], Tail_1):- del1(X, Tail, Tail_1). del1(X, [Y | Tail], [Y | Tail_1]):- del1(X, Tail, Tail_1). del2(_, [], []). del2(X, [Y | Tail], [Y | Tail_1]):- del2(X, Tail, Tail_1). del2(X, [X | Tail], Tail_1):- del2(X, Tail, Tail_1). %?- del1(1, [2,1],P). %P = [2] ; %P = [2, 1] ; %No %?- del2(1, [2,1],P). %P = [2, 1] ; %P = [2] ; %No rem_first(L, 0, L). rem_first([_|T], N, T1):- N1 is N-1, rem_first(T, N1, T1). pairs([], _, []). pairs([H|T], L2, R):- p_helper(H,L2,R1), pairs(T, L2, R2), append(R1, R2, R). p_helper(_, [], []). p_helper(E, [H|T], [[E,H]|T1]) :- p_helper(E,T,T1). % another version for pairs pp([], _, []). pp(_, [], []). pp([H1|T1], [H2|T2],[[H1,H2]| R]):- pp([H1|T1],T2,R1), pp(T1, [H2|T2], R2), append(R1, R2, R). % another version for pairs ppp(L1,L2,L):- findall([X,Y],(member(X,L1), member(Y,L2)),L). prog_1([],[]). prog_1([X|T], [X,X|T1]):- prog_1(T, T1). prog_2(L,R) :- acc(L, 1, R). acc([],A,A). acc([H|T],A,R):- A1 is A*H, acc(T,A1,R). %?- prog_2([1,2,3,4],R). % N = 24 prog_3([], Y, [Y]). prog_3([H|T], Y, [H |T1]):- prog_3(T, Y, T1). % ?- prog_3([a,b,c], 5 , R). % R = [a,b,c,5]