我有一個列表列表。我需要重新排序,裏面的元素,以便列出的新名單的所有第一元素的列表,那麼所有的第二元素列表等 它應該是這樣的:在haskell中重新排列列表列表
Input
[[a1,a2,a3],[b1,b2,b3],[c1,c2,c3]]
Output
[[a1,b1,c1],[a2,b2,c2],[a3,b3,c3]]
誰能幫助我和這個?
我有一個列表列表。我需要重新排序,裏面的元素,以便列出的新名單的所有第一元素的列表,那麼所有的第二元素列表等 它應該是這樣的:在haskell中重新排列列表列表
Input
[[a1,a2,a3],[b1,b2,b3],[c1,c2,c3]]
Output
[[a1,b1,c1],[a2,b2,c2],[a3,b3,c3]]
誰能幫助我和這個?
它看起來像你想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]]
一般來說,當這類問題面臨:
確定你所需要的功能,這裏的類型[[a]] -> [[a]]
搜索Hoogle http://www.haskell.org/hoogle/
猜你的第一個結果是什麼?當然是transpose
。
注:您應該user3217013接受的答案 - 我寫了這個,因爲我還不能編輯
他們全部大小爲3?你可以使用'轉置'功能。 – sdasdadas
接受答案會很有禮貌 – Titou