... I).insertLast(H, L, R) :- append(L, [H], R).getN([H | _], 1, H) :- !.getN([_ | T], N, X) :- N1 is N - 1, getN(T, N1, X).append2l([], X, X). append2l([H | T], X, [H | T1]) :- append2l(T, X, T1). ... reverseL([], []). reverseL([H | T], L) :- reverseL(T, T1), append(T1, [H],L). Question 2.prefix([],[_|_]).prefix([X|T1],[X|T2]) :- prefix(T1,T2).postfix(L1,L2) :- reverseL(L1,T1),reverseL(L2,T2),prefix(T1,T2).Question ... 3.separate([],[],[]).separate([H|T],[H|L1], L2):-H mod 2 < 1,!, separate(T,L1,L2).separate([H|T],L1,[H|L2]):-separate(T,L1,L2).Question 4.check([]). check([_]). check([_, _]). check([E1, E2, E3]) :- E3 > E1 * E2....