gpt4 book ai didi

list - 将列表过滤到单独的列表中

转载 作者:行者123 更新时间:2023-12-01 08:57:24 24 4
gpt4 key购买 nike

我需要过滤列表 [#,d,e,#,f,g] 以便我得到输出为 [[d,e],[f,g ]] ,
每次遇到“#”时,我都会在创建新列表时卡住,有没有办法做到这一点?我试过下面的代码,

filterL([],List) :-[].
filterL([Head|Tail],X) :-
( Head \='#'->
append(X,Head,List),
filterL(Tail,List)
; filterL(Tail,X)
).

最佳答案

您的问题没有很好地定义。是否允许空序列? [#]应该与[[],[]](前后有一个空序列)或[]相关吗?你说应该是[]。所以:

list_splitbyhash(Xs, Xss) :-
phrase(splitby(Xss,#), Xs).

splitby([],_E) -->
[].
splitby(Xss,E) -->
[E],
splitby(Xss,E).
splitby([Xs|Xss],E) -->
{Xs = [_|_]},
all_seq(dif(E),Xs),
splitby(Xss,E).

all_seq(_, []) --> [].
all_seq(C_1, [C|Cs]) -->
[C],
{call(C_1,C)},
all_seq(C_1, Cs).

关于list - 将列表过滤到单独的列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26439058/

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