Product of two sets - back to content

	Example:
		?- product([a,b],[1,2,3],R).
		R = [[a,1],[a,2],[a,3],[b,1],[b,2],[b,3]]

		?- put(a,[1,2,3],I).
		I = [[a,1],[a,2],[a,3]] 

product([],_,[]). product([H1|T1],L2,R):- put(H1,L2,R1),product(T1,L2,R2),append(R1,R2,R). put(X,[],[]). put(X,[H|T],[[X,H]|R]):- put(X,T,R).
Another version with member/2. ?- mmproduct([a,b],[1,2,3],R). R = [[a,1],[a,2],[a,3],[b,1],[b,2],[b,3]] mmproduct(M,N,R):- findall([X,Y],(member(X,M),member(Y,N)),R).