snd
öğesinin eşitliğine bağlı olarak bir grup tuples grubunu gruplamak için Data.List.groupBy'yi kullanmak istiyorum.Bu Haskell sorununa standart bir kütüphane çözümü var mı?
groupBy (\l r -> snd l == snd r) listOfTuples
Ama bu bana karşılaştırma fonksiyonu olarak çok fazla klişe çarpar - Bir daha karmaşık bir karşılaştırma yaptıklarını takdirde bunun çok daha dağınık alabilir özellikle çünkü:
ben bunu. Ben böyle bir şey yapmak istiyorum:
groupBy (comparing snd) listOfTuples
ama bu örnekte derleme değil bu yüzden karşılaştırarak türü imza comparing :: (Ord a) => (b -> a) -> b -> b -> Ordering
olduğunu.
Ben de olabilir yapın:
groupBy (\l r -> (comparing snd l r) == EQ) listOfTuples
Ama bu ilk denemede daha iyidir. Bu soruna, kendi hesabımı kullanmadan önce standart kütüphane çözümü var mı?
Hangi pakette '' 'geliyor? –
@Matt: Data.Function (http://hackage.haskell.org/packages/archive/base/latest/doc/html/Data-Function.html#v:on) genel olarak hoogle'daki işlevleri arayabilirsiniz: http://www.haskell.org/hoogle/?hoogle=on – porges
@Porges: teşekkürler! –