% Ex. 7.9.1 merge_rd([First, First|Rest1], Rest2, Rest) :- !, merge_rd([First|Rest1], Rest2, Rest). merge_rd(Rest1, [First, First|Rest2], Rest) :- !, merge_rd(Rest1, [First|Rest2], Rest). merge_rd([First|Rest1], [First|Rest2], [First|Rest]) :- !, merge_rd(Rest1, Rest2, Rest). merge_rd([First1|Rest1], [First2|Rest2], [First1|Rest]) :- First1 @< First2, !, merge_rd(Rest1, [First2|Rest2], Rest). merge_rd([First1|Rest1], [First2|Rest2], [First2|Rest]) :- \+ First1 @< First2, !, merge_rd([First1|Rest1], Rest2, Rest). merge_rd([First|X], [], [First|Rest]) :- !, merge_rd(X, [], Rest). merge_rd([], [First|X], [First|Rest]) :- !, merge_rd([], X, Rest). merge_rd([], [], []).