haskell - 列表理解 : making lists of lists

标签 haskell list-comprehension

嗨,我试图在 haskell 中创建一个函数,该函数需要一个数字 a 使用列表将其分割,即数字 4它会创建 [[1,1,1,1],[1,1,2],[1,3],[2,2],[4]] .我正在考虑对此使用列表推导,它将创建列表 x,然后使用 [1...n] 中的数字(n 是我想要的分区号)创建更多列表,其中创建的列表的总和将相等到 n。

到目前为止我创建的代码是 -

partions (n:xs) = [[x|x<-[1...n], sum[x]==n]]|xs<-[1..]]

但显然它不起作用,有什么建议吗?

谢谢。

最佳答案

我建议尝试递归:要获得 n 的分区,迭代数字 i = 1 到 n,并递归生成 (n-i) 的分区,基本情况是 1 的唯一分区是 1 本身,而0 是空列表。

关于haskell - 列表理解 : making lists of lists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4197096/

相关文章:

python - 使用理解而不是 for 循环

python - 列表理解中带有浮点格式的 f 字符串

haskell - 如何在 Haskell 中使用来自不同类型 monad 的值

haskell - 你如何为类型类方法编写重写规则?

Haskell 嵌套向量并行策略

Haskell:Turtle:从 Shell 中获取返回值

haskell - 多态类型的显式类型签名

python - 我怎样才能把这个列表推导式变成 for 循环

python - 将循环转化为列表理解

python - 给定相关数字列表,合并相关列表以创建不相交的集合