--ANSWERS FOR PRACTICE QUESTIONS--- TA: Haluk Madencioglu 1-) i) setdiff([], _, []). setdiff([E | S1], S2, S3) :- member(E, S2), !, setdiff(S1, S2, S3). setdiff([E | S1], S2, [E | S3]) :- setdiff(S1, S2, S3). ii) Does it produce any multiple solutions for any query? which one? ---> sd([a,s,d,f],X,[s,d]). Does it produce any multiple solutions for any query? which one? --->sd(C,[a,b],L). 2-) flatlist([], []). flatlist([H|T], L3) :- flatlist(H, L1), flatlist(T, L2), append(L1, L2, L3). flatlist(X, [X]). 3-) flatlist(X, Y) :- flatpair(X, Y,[]). flatpair([], L,L). flatpair([H|T] ,L1,L3) :- flatpair(H, L1,L2), flatpair(T, L2,L3). flatpair(X, [X|Z],Z).