[英]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.