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.