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