重新排列haskell中的列表列表

时间:2014-01-30 00:26:04

标签: list haskell

我有一份清单清单。我需要重新排序的元素,以便新的列表列表是所有第一个元素的列表,然后是所有第二个元素的列表,等等。 它应该是这样的:

Input
[[a1,a2,a3],[b1,b2,b3],[c1,c2,c3]]


Output
[[a1,b1,c1],[a2,b2,c2],[a3,b3,c3]]

任何人都可以帮我吗?

2 个答案:

答案 0 :(得分:7)

您似乎想要transpose,您需要导入Data.List

transpose将获取包含它们的列表的第一个元素,并按正确的顺序将它们放在第一个列表中,然后将列表中的第二个元素放入第二个列表中,然后将它们放入第二个列表中。正确的顺序,等等。

例如,

> transpose [[1,2,3],[4,5],[6]]
[[1,4,6],[2,5],[3]]

> transpose [[1],[2,3],[4,5,6]]
[[1,2,4],[3,5],[6]]

答案 1 :(得分:4)

一般来说遇到这样的问题:

猜猜你的案子的第一个结果? transpose当然。

注意:你应该接受来自user3217013的回答 - 我写了这个,因为我还不能编辑