Zamiana liter na wielkie w łańcuchu znaków

Haskell:
Zamiana liter na wielkie w łańcuchu znaków

Jak to zrobić:

W Haskellu możesz zrobić capitalizację ciągu używając standardowej biblioteki, bez potrzeby korzystania z bibliotek stron trzecich.

import Data.Char (toUpper, toLower)

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

-- Przykładowe użycie:
main = putStrLn $ capitalize "hello world"

Wyjście:

Hello world

Dla bardziej skomplikowanych scenariuszy lub dla wygody, możesz chcieć użyć biblioteki stron trzecich, takiej jak text, która jest popularna ze względu na efektywną manipulację ciągami w Haskellu.

Najpierw musisz dodać text do zależności swojego projektu. Następnie możesz użyć jej funkcji do zrobienia capitalizacji ciągu jak poniżej:

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)

-- Przykładowe użycie z biblioteką text:
main = putStrLn $ T.unpack $ capitalizeText (T.pack "hello world")

Wyjście:

Hello world

Oba te przykłady demonstrują proste, ale skuteczne sposoby na zrobienie capitalizacji ciągu w Haskellu, z lub bez użycia bibliotek stron trzecich.