2014-01-30 59 views
1

我有一個列表列表。我需要重新排序,裏面的元素,以便列出的新名單的所有第一元素的列表,那麼所有的第二元素列表等 它應該是這樣的:在haskell中重新排列列表列表

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


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

誰能幫助我和這個?

+9

他們全部大小爲3?你可以使用'轉置'功能。 – sdasdadas

+0

接受答案會很有禮貌 – Titou

回答

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]] 
4

一般來說,當這類問題面臨:

猜你的第一個結果是什麼?當然是transpose

注:您應該user3217013接受的答案 - 我寫了這個,因爲我還不能編輯