[英]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的元組(因此顯然沒有必要為thd
或fth
編寫訪問器函數):
(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.