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 resultOutput:
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 noVowelsOutput:
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.