采用的算法为分别取出两个有序列表的第一个元素进行比较,将较小的元素从源容器列表移到新列表中
1 -module(sortedlistconcat). 2 -export([start/2]). 3 4 start(L1, L2) -> 5 L = concat(L1, L2, []), 6 io:format("~w~n", [L]). 7 8 concat([H1|T1], [H2|T2], L) -> 9 if 10 H1 =< H2 -> concat(T1, [H2|T2], [H1] ++ L); 11 H1 > H2 -> concat([H1|T1], T2, [H2] ++ L) 12 end; 13 concat([], [], L) -> 14 lists:reverse(L); 15 concat([], L2, L) -> 16 lists:reverse(L) ++ L2; 17 concat(L1, [], L) -> 18 lists:reverse(L) ++ L1.