用途:用于列表理解

时间:2019-04-05 12:37:42

标签: list haskell list-comprehension

我正在尝试编写一个函数,该函数接受一个列表并返回所有子列表的列表。

很遗憾,我的解决方案无法编译,我也不明白为什么。

我的想法是使用列表综合功能,并在每次迭代中生成从0到列表长度的两个子列表。

sublists:: [a] -> [[a]]
sublists xs = [ as:bs | i <-[0..length xs], as <- (take i xs), bs <- drop (length xs - i) xs]

1 个答案:

答案 0 :(得分:3)

:前面有一个元素和一个列表。您的asbs都是列表。

您可能需要串联,例如as ++ bs

看来您还会发现其他问题,但这应该是第一要解决的问题。