簡體   English   中英

在Haskell列表中對元組進行排序

[英]Sorting tuples in haskell lists

我想按類型列表中的第三個或第四個元素(例如c或d)對元組列表進行排序:

myList = [(a,b,c,d,e)]

我知道元組是否為(a,b)類型(a,b)我可以使用以下方法:

mySort xmyList = sortBy (compare `on` snd) x

但是sortBy的類型不適用於長度大於2的元組(因此顯然沒有必要為thdfth編寫訪問器函數):

(a -> a -> Ordering) -> [a] -> [a]

但是sortBy的類型不適用於長度大於2的元組

不,它實際上適用於任何列表。 例如,如果要在c上排序,請執行以下操作:

mySort xmyList = sortBy (compare `on` (\(a,b,c,d,e) -> c)) x

要么

mySort xmyList = sortBy (comparing thirdOf5) x
   where thirdOf5 (_,_,c,_,_) = c

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM