如何编写sortBy,unionBy等更简洁的lambda函数

Cau*_*ity 3 sorting lambda haskell list

函数喜欢sortBy并将unionBylambda函数作为参数.lambda函数通常在从列表元素中获取某些部分之后compareeq之后执行.例如,

f v1 v2 = sortBy (\x y -> compare (fst x) (fst y)) $ 
            unionBy (\x y -> (fst x) == (fst y)) (zip v1 [0..]) (zip v2 [0..])
Run Code Online (Sandbox Code Playgroud)

只是想知道lambda函数是否\x y -> compare (fst x) (fst y)可以更简洁地编写.

And*_*ács 7

除了已经提到的on,comparing功能从Data.Ord这里直接适用.

\x y -> compare (f x) (f y) === comparing f 
Run Code Online (Sandbox Code Playgroud)