Quiero usar Data.List.groupBy para agrupar una lista de tuplas según la igualdad del elemento snd
.
que podía hacer esto:¿Existe una solución de biblioteca estándar para este problema de Haskell?
groupBy (\l r -> snd l == snd r) listOfTuples
Pero me parece demasiado repetitivo en la función de comparación - en especial, ya que podría conseguir mucho más complicado si estuviera haciendo una comparación más complicada. Me gustaría hacer algo como:
groupBy (comparing snd) listOfTuples
pero el tipo de firma de la comparación es comparing :: (Ord a) => (b -> a) -> b -> b -> Ordering
, por lo que no se compila en este ejemplo.
también podía hacer:
groupBy (\l r -> (comparing snd l r) == EQ) listOfTuples
Pero esto no es mejor que la primera. ¿Existe una solución de biblioteca estándar para este problema, antes de lanzar mi propia cuenta?
¿De qué paquete viene 'on'? –
@Matt: Data.Function (http://hackage.haskell.org/packages/archive/base/latest/doc/html/Data-Function.html#v:on) en general, puede buscar funciones en hoogle: http://www.haskell.org/hoogle/?hoogle=on – porges
@Porges: ¡gracias! –