我想使用Data.List.groupBy根据snd
元素的等同性对元组列表进行分组。
我可以这样做:有没有一个标准的库解决这个Haskell问题?
groupBy (\l r -> snd l == snd r) listOfTuples
但是这让我在比较功能太多样板 - 尤其是因为它可以得到更多的混乱,如果我在做一个更复杂的比较。我想这样做:
groupBy (comparing snd) listOfTuples
,但比较的类型签名是comparing :: (Ord a) => (b -> a) -> b -> b -> Ordering
,所以它不会在这个例子编译。
我也可以这样做:
groupBy (\l r -> (comparing snd l r) == EQ) listOfTuples
但是,这并不比第一次尝试更好。在我推出自己的产品之前,是否有标准库解决方案来解决这个问题?
'on'来自哪个软件包? –
@Matt:Data.Function(http://hackage.haskell.org/packages/archive/base/latest/doc/html/Data-Function.html#v:on)通常你可以在hoogle上搜索函数: http://www.haskell.org/hoogle/?hoogle=on – porges
@Porges:谢谢! –