我正在尝试编写一个函数,该函数接受一个列表并返回所有子列表的列表。
很遗憾,我的解决方案无法编译,我也不明白为什么。
我的想法是使用列表综合功能,并在每次迭代中生成从0到列表长度的两个子列表。
sublists:: [a] -> [[a]]
sublists xs = [ as:bs | i <-[0..length xs], as <- (take i xs), bs <- drop (length xs - i) xs]
答案 0 :(得分:3)
:
前面有一个元素和一个列表。您的as
和bs
都是列表。
您可能需要串联,例如as ++ bs
。
看来您还会发现其他问题,但这应该是第一要解决的问题。