【发布时间】:2016-04-21 08:32:03
【问题描述】:
如何在不使用显式递归的情况下创建一个将列表元素分组为预定义长度列表的函数。
例如,对于 2:
[1, 2, 3, 4, 5, 6, 7, 8]
[[1, 2], [3, 4], [5, 6], [7, 8]]
谢谢!
【问题讨论】:
-
你可以使用折叠。在折叠的累加器(输出列表)中,您可以检查最后一个元素(子列表)的长度,如果它小于预定义长度,则将当前元素附加到它,如果长度等于预定义长度,然后开始一个新列表。
-
我不明白“不使用显式递归”的说法。如果你使用助手,它肯定是递归的;那有什么意义呢?
-
在没有显式递归的情况下编写这个函数的动机是什么?
标签: haskell