Capitalizando una cadena de texto

Haskell:
Capitalizando una cadena de texto

Cómo hacerlo:

En Haskell, puedes capitalizar una cadena usando la biblioteca estándar sin necesidad de bibliotecas de terceros.

import Data.Char (toUpper, toLower)

capitalize :: String -> String
capitalize "" = ""
capitalize (head:tail) = toUpper head : map toLower tail

-- Uso de muestra:
main = putStrLn $ capitalize "hello world"

Salida:

Hello world

Para escenarios más complejos o facilidad de uso, es posible que quieras usar una biblioteca de terceros como text, que es popular para la manipulación eficiente de cadenas en Haskell.

Primero, necesitas agregar text a las dependencias de tu proyecto. Luego, puedes usar sus funciones para capitalizar una cadena de la siguiente manera:

import qualified Data.Text as T
import Data.Char (toUpper)

capitalizeText :: T.Text -> T.Text
capitalizeText text = case T.uncons text of
    Nothing -> T.empty
    Just (first, rest) -> T.cons (toUpper first) (T.toLower rest)

-- Uso de muestra con la biblioteca text:
main = putStrLn $ T.unpack $ capitalizeText (T.pack "hello world")

Salida:

Hello world

Ambos ejemplos demuestran maneras simples pero efectivas de capitalizar una cadena en Haskell, con o sin bibliotecas de terceros.