Ordenación por frecuencia
Definir la función
ordPorFrecuencia :: Ord a => [a] -> [a]
tal que (ordPorFrecuencia xs) es la lista obtenidas ordenando los elementos de xs por su frecuencia, de los que aparecen menos a los que aparecen más. Por ejemplo,
ordPorFrecuencia "canalDePanama" == "DPcelmnnaaaaa" ordPorFrecuencia "20012016" == "61122000"
Soluciones
import Data.List (group, sort) ordPorFrecuencia :: Ord a => [a] -> [a] ordPorFrecuencia xs = concatMap snd (sort [(length xs,xs) | xs <- group (sort xs)])