我需要合并两个列表L1 = [1,2,3]和L2 = [a,b],如下所示:M = [1,a,2,b,3]。 我怎么能在PROLOG中做到这一点?
答案 0 :(得分:8)
你可以尝试
m2([A|As], [B|Bs], [A,B|Rs]) :-
!, m2(As, Bs, Rs).
m2([], Bs, Bs) :- !.
m2(As, [], As).
答案 1 :(得分:4)
您可以查看以下链接:Prolog program to merge two ordered lists
这不会为您提供所需的输出,但它是一个开始。
经过一些尝试,这是正确的答案,比我提出的原件(测试和工作)简单得多。
mergelist_alternate([],[],[]).
mergelist_alternate([X],[],[X]).
mergelist_alternate([],[Y],[Y]).
mergelist_alternate([X|List1],[Y|List2],[X,Y|List]) :- mergelist_alternate(List1,List2,List).
您可以这样称呼它:
mergelist_alternate([1,2,3],[a,b],L),!.
答案 2 :(得分:3)
merge_list([],L,L ).
merge_list([H|T],L,[H|M]):-
merge_list(T,L,M).
它会起作用。 100%测试!
Input: merge_list([1,2],[3,4],M).
Output: M=[1,2,3,4].