Merkkijonon muuttaminen isoiksi kirjaimiksi

Haskell:
Merkkijonon muuttaminen isoiksi kirjaimiksi

Miten:

Haskellissa voit pääomanlisoida merkkijonon käyttämällä standardikirjastoa ilman, että tarvitset kolmannen osapuolen kirjastoja.

import Data.Char (toUpper, toLower)

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

-- Esimerkki käytöstä:
main = putStrLn $ capitalize "hello world"

Tuloste:

Hello world

Monimutkaisemmissa skenaarioissa tai käytön helpottamiseksi saattaisit haluta käyttää kolmannen osapuolen kirjastoa, kuten text, joka on suosittu tehokkaaseen merkkijonon käsittelyyn Haskellissa.

Ensin sinun täytyy lisätä text projektisi riippuvuuksiin. Sen jälkeen voit käyttää sen funktioita pääomanlisoimaan merkkijonon seuraavasti:

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)

-- Esimerkki käytöstä text-kirjaston kanssa:
main = putStrLn $ T.unpack $ capitalizeText (T.pack "hello world")

Tuloste:

Hello world

Molemmat näistä esimerkeistä osoittavat yksinkertaisia, mutta tehokkaita tapoja pääomanlisoida merkkijono Haskellissa, kolmannen osapuolen kirjastojen kanssa tai ilman.