You are on page 1of 1

%Program to merge two ordered list.

%Rules.
merge([],L,L):- !.
merge(L,[],L):- !.
merge([H1|T1],[H2|T2],[H3|T3]):- H1>H2,H3 is H2,merge([H1|T1],T2,T3).
merge([H1|T1],[H2|T2],[H3|T3]):- H1<H2,H3 is H1,merge(T1,[H2|T2],T3).
merge([H1|T1],[H2|T2],[H3,H4|T3]):- H1=H2,H3 is H1,H4 is H2,merge(T1,T2,T3).
%Query.
?- read(L1),read(L2),write("List1 "),write(L1),nl,write("List2 "),write(L2),nl,m
erge(L1,L2,L3),write("Merged list is "),write(L3),nl.

You might also like