gpt4 book ai didi

list - 将矩阵分解为序言中第一个元素的列表和剩余元素的子列表

转载 作者:行者123 更新时间:2023-12-02 04:14:50 25 4
gpt4 key购买 nike

测试用例

?- decompose([[1,2,8],[3,4],[5,6]], L1, L2).
L1 = [1,3,5], L2 = [[2,8],[4],[6]] ? ;
no

我尝试过另一种实现,但给出的反馈是它效率低下。

实现效率低下

listFirst([], []).
listFirst([H1|T1], [H2|Z]):-
H1 = [H2|_],
listFirst(T1, Z).

listFollowers([], []).
listFollowers([H1|T1], [T2|Z]):-
H1 = [H2|T2],
listFollowers(T1, Z).

decompose(A,L1,L2) :-
listFollowers(A, L2),
listFirst(A, L1).

最佳答案

跟进@findall's previous answer ...使用 怎么样? maplist/4

list_head_tail([X|Xs], X, Xs).decompose(Mss, Hs, Ts) :-   maplist(list_head_tail, Mss, Hs, Ts).

示例查询:

?- decompose([[a,b,c],[d,e,f]], Heads, Tails).Heads = [a,d], Tails = [[b,c],[e,f]].?- decompose([[1,2,8],[3,4],[5,6]], L1, L2).L1 = [1,3,5], L2 = [[2,8],[4],[6]].

关于list - 将矩阵分解为序言中第一个元素的列表和剩余元素的子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34145086/

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