由于代码示例值一千字,我将从以下内容开始:
testList = [1,2,2,3,4,5]
testSet = map sumMapper $ tails testList
where sumMapper [] = []
sumMapper (a:b) = sumMap a b
sumMap a b = map (+ a) b
此代码采用一个列表并将所有元素相加以获得所有元素的总和(我也对此效率感兴趣)。测试集的输出是:
[[3,3,4,5,6],[4,5,6,7],[5,6,7],[7,8],[9],[],[]]
我想找到这些列表的并集(使其成为一个集合),但我觉得:
whatIWant = foldl1 union testSet
性能会很差(真正的列表会有数千个元素)。
这是正确的解决方案还是我遗漏了一些明显的东西?