SWI Prolog - 将两个列表中的元素组合成对
SWI Prolog - Combining elements from two lists into pairs
如何在保持元素位置不变的情况下“加入”两个列表?比如,我有 List1 = [1,2,3]
和 List2 = [a,b,c]
。我怎样才能得到列表 [[1,a], [2,b], [3,c]]
?
我一直在尝试寻找内置谓词,但我发现的所有内容都无法重现。
join_2_lists(L1, L2, JoinLst) :-
must_be(list, L1),
must_be(list, L2),
join_2_lists_(L1, L2, JoinLst).
join_2_lists_([], [], []).
join_2_lists_([H1|T1], [H2|T2], [[H1, H2]|JoinLst]) :-
join_2_lists_(T1, T2, JoinLst).
结果swi-prolog:
?- join_2_lists([1, 2, 3], [a, b, c], J).
J = [[1,a],[2,b],[3,c]].
如何在保持元素位置不变的情况下“加入”两个列表?比如,我有 List1 = [1,2,3]
和 List2 = [a,b,c]
。我怎样才能得到列表 [[1,a], [2,b], [3,c]]
?
我一直在尝试寻找内置谓词,但我发现的所有内容都无法重现。
join_2_lists(L1, L2, JoinLst) :-
must_be(list, L1),
must_be(list, L2),
join_2_lists_(L1, L2, JoinLst).
join_2_lists_([], [], []).
join_2_lists_([H1|T1], [H2|T2], [[H1, H2]|JoinLst]) :-
join_2_lists_(T1, T2, JoinLst).
结果swi-prolog:
?- join_2_lists([1, 2, 3], [a, b, c], J).
J = [[1,a],[2,b],[3,c]].