你好,我正在尝试在Haskell中创建一个函数,该函数使用列表将数字分割成若干部分。例如,对于数字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..]]
但显然它不起作用,有什么建议吗?
谢谢。