merge(A, [], A). merge([], B, B). merge([A|RestAs], [B|RestBs], [C|Merged]) :- A < B -> (merge(RestAs, [B|RestBs], Merged), C = A) ; (merge([A|RestAs], RestBs, Merged), C = B).