Slette tegn som matcher et mønster

Haskell:
Slette tegn som matcher et mønster

How to:

I Haskell kan vi bruke Data.Text biblioteket til å arbeide med tekst og Data.Text sin funksjon filter for å slette tegn. Her er et eksempel:

import Data.Text (Text, filter)

deletePattern :: Char -> Text -> Text
deletePattern pattern text = filter (/= pattern) text

main :: IO ()
main = do
    let text = "Heisann! Dette er en test."
    let result = deletePattern 'e' text
    print result

Kjøring av dette gir følgende resultat:

"Hisan! Dtt r n tst."

Deep Dive

Sletting av mønstrende tegn er ikke nytt i Haskell, men filter funksjonen har eksistert i funksjonell programmering siden Lisp. Alternativer inkluderer bruk av regulære uttrykk med Text.Regex biblioteket, som kan være kraftigere, men også mer kompleks.

Implementasjonsdetaljer for filter er enkle: funksjonen traverserer gjennom tekststrengen, beholder tegn som ikke samsvarer med mønsteret og forkaster de som gjør det. Det er effektivt og lett å forstå.

See Also

Her er også et godt eksempel på bruk av Data.Text for tekstmanipulering i Haskell: https://www.schoolofhaskell.com/school/starting-with-haskell/libraries-and-frameworks/text-manipulation