0

嘿伙计们,所以我正在尝试从列表列表中获取 n 个列表。我想知道haskell中是否有一种类似于“take”和“drop”方法的方法,但是否适用于我的情况。例如:

Input = [ [1,2,3,4], [5,6,7,8], [9,1,2,3], [4,5,6,7], [8,9,1,2], [3,4,5,6] ]

我希望能够从这个列表列表中获取前 3 个元素,并最终得到如下内容:

Output = [ [1,2,3,4], [5,6,7,8], [9,1,2,3]]

我还希望能够从这个列表列表中删除前 3 个元素,并最终得到如下内容:

Output = [[4,5,6,7], [8,9,1,2], [3,4,5,6]]

有没有可能在haskell中做这样的事情。?谁能指出我如何解决这个问题的正确方向。提前致谢。

4

1 回答 1

7

takedrop做到这一点。它们对所有元素类型都一样,即使元素类型是列表类型。

Prelude> take 3 [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16],[17,18,19,20]]
[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
Prelude> drop 3 [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16],[17,18,19,20]]
[[13,14,15,16],[17,18,19,20]]
于 2012-04-21T23:35:36.993 回答