嗨,我有这个小函数可以找到集合的幂集,但我需要所有连续的子列表。 [1,2,3] -> [[],[1],[2],[3],[1,2],[2,3],[1,2,3]]
而不是 [[],[3],[2],[2,3],[1],[1,3],[1,2],[1,2,3]]
有没有办法修复这个功能来做我想做的事?
sublists :: [a] -> [[a]]
sublists [] = [[]]
sublists (x:xs) = sublists xs ++ map (x:) (sublists xs)
最佳答案
它不是很优雅,但您可以使用 divvy
来自 Data.List.Split
:
xs = [1,2,3]
[] : concat [ divvy n 1 xs | n <- [1..length xs] ]
-- [[],[1],[2],[3],[1,2],[2,3],[1,2,3]]
关于list - 列表的 Haskell 连续子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49151573/