gpt4 book ai didi

list - Prolog 合并两个列表

转载 作者:行者123 更新时间:2023-12-01 04:42:44 25 4
gpt4 key购买 nike

例如我有 A = [a,b,c,d]B = [[q,w,e],[r,t],[y,u ],[i,o]] 我想创建这样的对 C = [[a,[q,w,e]],[b,[r,t]],[c ,[y,u]],[d,[i,o]]].我可以创建成对列表,但我不想将每个人都组合在一起。有没有简单的方法可以做到这一点?我只是无法向 Google 正确定义问题。

最佳答案

这个问题对我来说似乎没有多大意义,但我们试试看:

我的第一个观察结果是所有三个列表的长度都相同。并且实际上你在这里有一个元素明智的映射,就像这样:

a_b_c(A,B,[A,B]).

现在使用 maplist/4:

?- As = [a,b,c,d], Bs = [[q,w,e],[r,t],[y,u],[i,o]], maplist(a_b_c, As, Bs, Cs).
As = [a,b,c,d], Bs = [[q,w,e],[r,t],[y,u],[i,o]],
Cs = [[a,[q,w,e]],[b,[r,t]],[c,[y,u]],[d,[i,o]]].

但是,我敢说,我真的宁愿考虑成双!我看不出上述表示有任何优点。

key_value_pair(K,V,K-V).

?- As = [a,b,c,d], Bs = [[q,w,e],[r,t],[y,u],[i,o]], maplist(a_b_c, As, Bs, Cs).
As = [a,b,c,d], Bs = [[q,w,e],[r,t],[y,u],[i,o]],
Cs = [a-[q,w,e],b-[r,t],c-[y,u],d-[i,o]].

maplist/4 是一个常见的预定义或库谓词。 See also this post .如果您没有:

maplist(_C_3, [], [], []).
maplist(Cont_3, [A|As], [B|Bs], [C|Cs]) :-
call(Cont_3, A, B, C),
maplist(Cont_3, As, Bs, Cs).

关于list - Prolog 合并两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23959757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com