:-main(50, 50). main(A, B) :- gen(0, A, 10, As), gen(0, B, 5, Bs) , merge(As, Bs, Rs), outputln(Rs). % main(A, B) :- gen(0, A, 10, Rs), gen(0, B, 5, Rs) , outputln(Rs). % main(A, B) :- true | gen(2, A, B, As), outputln(As). % main(A, B) :- merge([2,3,4,5], [7,8,9,10], Rs), outputln(Rs). % main(A, B) :- outputln([2,3,4,5]). outputln(Xs) :- true | output(Xs, Os), io:outstream(Os). output([P|Ps], Os) :- true | Os = [write(P), nl|Os1], output(Ps, Os1). output([] , Os) :- true | Os = []. % gen(N, Max, Ns) :- N=Max | Ns=[]. gen(N, Max, I, Ns) :- N=Max | Ns=[]. merge([A|As], Bs, Os) :- true | Os = [A|Os1], merge(As, Bs, Os1) . merge(As, [B|Bs], Os) :- true | Os = [B|Os1], merge(As, Bs, Os1) . merge([],Bs, Os) :- true | Bs=Os. merge(As,[], Os) :- true | As=Os.