Mayúscula inicial
Enunciado
1 2 3 4 5 |
-- 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
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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 [] = [] |
Para esta solución es necesario importar la librería Data.Char
No conocía las funciones que habían usado los demás. Igualmente he encontrado un fallo en mí definición.