Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/12/2012, 12:11
sergimbo
 
Fecha de Ingreso: noviembre-2009
Mensajes: 98
Antigüedad: 14 años, 6 meses
Puntos: 2
Ordenar lineas en haskell

Se me propone lo siguente "Utilizando el comando interact haz un programa que saque por salida estandar las lineas de entrada estandar ordenadas por el numero de palabras contenidas en cada lnea. Utilice la funcion words."

De momento llevo este codigo
Código:
import Data.List
main :: IO()
main = interact ordenarLong
ordenarLong :: String -> String
ordenarLong = ordenar . lines
            where ordenar [String] -> String
                 ordenar (x:y:ys)
                  | (length(words(x)) < (length(words(y)) = x : y : ys
                  | (length(words(y)) < (length(words(x)) = y : x : ys
                  |  otherwise ordenar ys
El problema es que tengo que ordenar las lineas segun el numero de palabras. Para ello primero hago un lines y despues a cada linea le paso un words y veo el numero de palabtras con un length.
el problema esta en que como comparo todas las demas, ademas de la primera y la segunda?

saludos y gracias