Menu Close

Inversión de palabras

Definir la función

   palabrasInvertidas :: String -> String

tal que (palabrasInvertidas cs) es la cadena obtenida invirtiendo las palabras de cs. Por ejemplo,

   λ> palabrasInvertidas "Del principio al final"
   "final al principio Del"
   λ> palabrasInvertidas "una a una"
   "una a una"

Soluciones

palabrasInvertidas :: String -> String
palabrasInvertidas = unwords . reverse . words

Otras soluciones

  • Se pueden escribir otras soluciones en los comentarios.
  • El código se debe escribir entre una línea con <pre lang="haskell"> y otra con </pre>

Pensamiento

“Las matemáticas son el arte de dar el mismo nombre a cosas diferentes.”

Henri Poincaré.

3 soluciones de “Inversión de palabras

  1. rebgongor
    palabrasInvertidas :: String -> String
    palabrasInvertidas = unwords . reverse . words
  2. Enrique Zubiría
    palabrasInvertidas :: String -> String
    palabrasInvertidas = concat . reverse . trocea
     
    trocea :: String -> [String]
    trocea xs
      | resto == "" = [siguientePalabra]
      | otherwise   = siguientePalabra : " " : trocea (tail resto)
      where siguientePalabra = takeWhile (/= ' ') xs
            resto            = dropWhile (/= ' ') xs
  3. juabaerui
    import Data.List.Split (splitOn)
     
    palabrasInvertidas :: String -> String
    palabrasInvertidas =
      concat
      . zipWith (++) ([] : repeat " ")
      . reverse
      . splitOn " "

Leave a Reply

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.