gpt4 book ai didi

haskell - 过滤统一列表的列表

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

几天来我一直在尝试寻找这个问题的解决方案,在对自己感到太沮丧之前,我决定寻求帮助。

我有一个统一列表的列表,例如[[2], [2, 2], [3], [3, 3] [3, 3, 3], [5]] 我想应用一个过滤器,以便只有不属于任何其余列表子集的列表仍保留。

这是一个复杂的句子。基本上我需要一个函数 f 来实现

f [[2], [2, 2], [3], [3, 3] [3, 3, 3], [5]]

结果

[[2, 2], [3, 3, 3], [5]]

我希望我已经说清楚了。如果没有,请帮我澄清!

最佳答案

看起来你想要这个:

import Data.List
import Data.Function

f :: (Ord a) => [[a]] -> [[a]]
f = map (maximumBy (compare `on` length)) . groupBy ((==) `on` head) . sortBy (compare `on` head)

我们只是按列表头将列表分组在一起,然后选择每个列表中的最大值。

如果我没理解错的话,您想要选择不是其他列表的子列表的列表,这本质上是每个组的最长列表。

关于haskell - 过滤统一列表的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25729009/

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