Konvertera en sträng till gemener

Haskell:
Konvertera en sträng till gemener

Hur gör man:

I Haskell, använder du Data.Text för att jobba med textsträngar på ett effektivt sätt. I Data.Text finns en funktion toLower som konverterar varje tecken i en sträng till gemener. Här är ett enkelt exempel:

import Data.Text (toLower, pack, unpack)

lowercaseStr :: String -> String
lowercaseStr = unpack . toLower . pack

main :: IO ()
main = putStrLn $ lowercaseStr "Hej Världen!"

Kör du programmet får du följande resultat:

hej världen!

Djupdykning

Att hantera text i programmering har varit relevant så länge som människor har interagerat med datorer. Innan Data.Text, använde många Data.Char och dess funktion toLower för att konvertera enskilda tecken, kombinerat med map för att tillämpa konverteringen på varje tecken i en sträng. Data.Text blev senare valet för många på grund av bättre prestanda med större textvolym.

Alternativ? Du kan fortfarande använda den äldre metoden:

import Data.Char (toLower)

lowercaseStrOld :: String -> String
lowercaseStrOld = map toLower

-- Och använda den på samma sätt som ovan:
-- main = putStrLn $ lowercaseStrOld "Hej Världen!"

Detaljer? Data.Text hanterar text som en sekvens av Unicode-tecken, vilket innebär att den kan hantera nästan alla skrivsystem, inte bara ASCII. Vilket är värdefullt för en global värld.

Se även