Estoy intentando averiguar el comportamiento de la función de biblioteca groupBy (de Data.List), que pretende agrupar elementos de una lista mediante una función de "prueba de igualdad" pasada como el primer argumento El tipo de firma sugiere que la prueba de la igualdad sólo tiene que tener un tipoHaskell: comportamiento sorprendente de "groupBy"
(a -> a -> Bool)
Sin embargo, cuando se utiliza (<) como la "prueba de igualdad" en GHCi 6.6, los resultados no son lo que espero:
ghci> groupBy (<) [1, 2, 3, 2, 4, 1, 5, 9]
[[1,2,3,2,4],[1,5,9]]
En cambio yo esperaría carreras de números estrictamente creciente, como este:
[[1,2,3],[2,4],[1,5,9]]
¿Qué me falta?
Gracias. No me había dado cuenta de que la documentación requiere que una prueba de igualdad sea una relación de equivalencia. – Pillsy
No dice que tiene que ser una relación de equivalencia. De hecho, hay cosas útiles que puede hacer con las relaciones de no equivalencia. p.ej. http://stackoverflow.com/questions/930675/functional-paragraphs/930765#930765 – newacct