我有以下元组列表:
[("a",6),("b",1),("c",2),("d",4),("e",1),("f",1),("g",5),("h",3),("i",1),("j",2)]
Run Code Online (Sandbox Code Playgroud)
但是想order通过元组snd元素列表中的元组.这样,我得到一个类似的回答:
[("b",1),("e",1),("f",1),("i",1),("c",2),("j",2),("h",3),("d",4),("g",5),("a",6)]
Run Code Online (Sandbox Code Playgroud)
(即列表按snd每个元组的第二个()排序.
Jos*_*Lee 10
sortBy (comparing snd)
Run Code Online (Sandbox Code Playgroud)
这里sortBy是List和comparing是Data.Ord.
作为jleedev答案的替代方案:
sortBy (compare `on` snd)
Run Code Online (Sandbox Code Playgroud)
这里sortBy是Data.List和on是Data.Function.
IMO这个公式稍微好一点,因为compare它只是标准的类方法Ord,并且on是一个更普遍有用的函数comparing.但其中并不多.