Een string met hoofdletters maken

Haskell:
Een string met hoofdletters maken

Hoe:

Om strings in Haskell te kapitaliseren, heeft de taal zelf geen ingebouwde capitalize functie. Daarom maken we er zelf een met behulp van de toUpper en toLower functies van de Data.Char module.

import Data.Char (toUpper, toLower)

-- Maakt de eerste letter van een string een hoofdletter en de rest kleine letters
capitalize :: String -> String
capitalize ""     = ""
capitalize (x:xs) = toUpper x : map toLower xs

main = do
  print $ capitalize "haskell"       -- Geeft "Haskell"
  print $ capitalize "hASKELL"       -- Geeft "Haskell"
  print $ capitalize ""              -- Geeft ""
  print $ capitalize "hello world!"  -- Geeft "Hello world!"

Diepgaande Duik

Haskell, een functionele programmeertaal, bevat geen eenvoudige stringkapitalisatie in zijn standaardbibliotheek, mogelijk omdat het triviaal te implementeren is en niet vaak nodig is voor het type programmering waarvoor het is ontworpen.

Alternatieven voor de capitalize functie zouden Data.Text kunnen gebruiken, wat prestatievoordelen kan bieden voor grote teksten vanwege efficiëntere interne voorstellingen. Of kijk naar bibliotheken zoals text-icu voor robuuste locatiegevoelige kapitalisatie.

Wat betreft de implementatie, is het de moeite waard op te merken dat onze capitalize functie niet omgaat met niet-ASCII karakters. Als je volledige Unicode-ondersteuning nodig hebt, zou je moeten kijken naar een bibliotheekoplossing of complexe gevallen van Unicode-kapitalisatie moeten afhandelen waarbij eenvoudige teken-voor-teken transformaties niet volstaan.

Zie Ook