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
- Haskell’s
Data.Charmodule: http://hackage.haskell.org/package/base-4.16.0.0/docs/Data-Char.html Data.Textvoor efficiënte tekstmanipulatie: http://hackage.haskell.org/package/text- Introductie tot tekstverwerking in Haskell: https://wiki.haskell.org/Text_Processing
- Overwegingen met betrekking tot Unicode in Haskell: https://wiki.haskell.org/Unicode_input_and_output