Ir al contenido principal

Mayúscula inicial

Definir la función

mayusculaInicial :: String -> String

tal que (mayusculaInicial xs) es la palabra xs con la letra inicial en mayúscula y las restantes en minúsculas. Por ejemplo,

mayusculaInicial "sEviLLa"  ==  "Sevilla"

Soluciones

import Data.Char

-- 1ª definición (por comprensión):
mayusculaInicial :: String -> String
mayusculaInicial [] = []
mayusculaInicial (x:xs) = toUpper x : [toLower x | x <- xs]

-- 2ª definición (por recursión):
mayusculaInicialRec :: String -> String
mayusculaInicialRec [] = []
mayusculaInicialRec (x:xs) = toUpper x : aux xs
    where aux (x:xs) = toLower x : aux xs
          aux []     = []