我正在尝试编写一个函数,该函数接受一个列表并返回所有子列表的列表。
不幸的是,我的解决方案无法编译,我不明白为什么。
我的想法是在列表理解中使用 take 和 drop,并在从 0 到列表长度的每次迭代中生成两个子列表。
sublists:: [a] -> [[a]]
sublists xs = [ as:bs | i <-[0..length xs], as <- (take i xs), bs <- drop (length xs - i) xs]
:
前置一个元素和一个列表。您的as
和bs
是这两个列表。
您可能需要串联,如as ++ bs
.
似乎您会发现其他问题,但这应该是首先要解决的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句