繁体   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