rendered paste body% 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([], [], []).