Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 如何在列表中分配一组数字_Algorithm_Haskell - Fatal编程技术网

Algorithm 如何在列表中分配一组数字

Algorithm 如何在列表中分配一组数字,algorithm,haskell,Algorithm,Haskell,我是Haskell的新手,我正在尝试解决一个特定的问题: distribute::Int→ Int→[内部]→[[Int]] 分发34[1,2,3,4,5]-->[1,4],[2],[3] 我不知道如何做到这一点 distribute在本例中接收多个列表3、多个整数4和一个数字列表。然后从数字列表中分别和按顺序提取整数。这意味着列表1 St1从intger列表中获取第一(1),第二个列表是数字2,直到第三个列表。重复此操作,直到所有堆栈包含4个数字 distribute n m xs返回n个列表

我是Haskell的新手,我正在尝试解决一个特定的问题:
distribute::Int→ Int→[内部]→[[Int]]

分发34[1,2,3,4,5]-->[1,4],[2],[3]

我不知道如何做到这一点

distribute在本例中接收多个列表3、多个整数4和一个数字列表。然后从数字列表中分别和按顺序提取整数。这意味着列表1 St1从intger列表中获取第一(1),第二个列表是数字2,直到第三个列表。重复此操作,直到所有堆栈包含4个数字


distribute n m xs返回n个列表,其中包含分布在其中的xs中的m个元素。

“我试图解决某个问题”-那么您尝试了什么?您编写了什么代码?您到底在哪里面临问题?还有,这个函数应该做什么?有了明确的规范,它就容易多了,谢谢。因此,您可以从以下内容开始:
distribute sublistCount maxIndex xs=map makeSublist[0..(sublistCount-1)],其中makeSublist i=…
。因此,现在的问题是编写
makeSublist
辅助函数。由于选择标准是关于元素索引而不是元素值,因此可以从对列表元素进行编号开始,如
pairList=zip xs[0..]
;然后,您可以为给定的子列表过滤感兴趣的对,作为最后一步,使用类似于
map fst pairList2
的方法放弃索引。我试图找出一个更通用的解决方案,但无法理解该函数对其他输入的作用。您的回答避免了这个问题,太好了。@ThomasM.DuBuisson
distribute n m xs
返回
n
列表,其中包含
m
元素,这些元素来自
xs
。这是一个很酷的家庭作业问题。但这显然是对所问问题的正确答案。@Carl一个人怎么能在一个数据库中递归地创建离散数量的列表呢function@qr3ck有关如何执行此操作的示例,请参见
replicate
功能。
distribute 3 4 [1,2,3,4,5] = [[1,4],[2],[3]]