Haskell:
Ta bort tecken som matchar ett mönster
How to:
import Data.List (delete)
-- Ta bort alla förekomster av ett specifikt tecken
removeChar :: Char -> String -> String
removeChar char = filter (/= char)
-- Använd removeChar
main :: IO ()
main = do
let original = "Haskell är läckert!"
let result = removeChar 'ä' original
putStrLn result
Output:
Haskell är läckert! -- Originalsträngen
Haskell r läckert! -- Efter borttagning av 'ä'
För mer komplexa mönster, använd reguljära uttryck med regex
-paketet:
import Text.Regex.TDFA ((=~))
-- Ta bort alla vokaler
removeVowels :: String -> String
removeVowels str = str =~ "[^aeiouyAEIOUY]"
-- Använd removeVowels
main :: IO ()
main = do
let text = "Haskell är mäktigt!"
let noVowels = removeVowels text
putStrLn noVowels
Output:
Hskll r mkttg!
Deep Dive
Historiskt sätt har textmanipulering varit en del av programmering sedan början. Haskell ger oss funktioner som filter
ur standardbiblioteket för enkla uppgifter. Reguljära uttryck från paket som regex
ger kraftfullare möjligheter. Haskell hanterar det funktionellt, vilket skiljer sig från imperativa språk. Ett funktionellt tillvägagångssätt fokuserar på att applikationen av funktioner och sammansättning ger läsbar och säker kod.
Alternativ till att ta bort tecken kan inkludera att använda parser-bibliotek som parsec
eller megaparsec
för mer avancerade textbearbetningsbehov.