gpt4 book ai didi

Prolog,我应该如何将列表列表构造为单个列表?

转载 作者:行者123 更新时间:2023-12-04 17:31:09 24 4
gpt4 key购买 nike

我想构建一个列表列表以将彼此交织到一个列表中,例如: coon([[1,4],[2,5],[3,6]], X) 应该返回 X=1,2, 3、4、5、6。并且有一个条件,每个子列表应该只有相同的长度,否则,它应该失败,例如 [[q,r,y],[a,e],[c,g,t],X] shouid fail, coon([A,B,C],[q,w,e,r,t,y]) 应该只返回一个解,即 A=[q,r],B=[w,t],C =[e,y]。
我最近的做法是。

  conns([],[]).
conns([[Head|Tail]|X],[Head|Y]):-
append(X,[Tail],X2),
conns(X2,Y).

conns([[]|T],A):-
conns(T,A).

当我尝试 coon([A,B,C],[q,w,e,r,t,y]) 时,它给了我多种解决方案。
我一直在尝试几个小时来弄清楚,但都失败了。我应该如何将单个列表返回到包含相同长度的每个子列表?
非常感谢!

最佳答案

:- use_module(library(clpfd),[transpose/2]).

connsx(Xss, Xs) :-
transpose(Xss, XssT),
append(XssT, Xs).

关于Prolog,我应该如何将列表列表构造为单个列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46301594/

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