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
- Haskell
Text
pakken: https://hackage.haskell.org/package/text - Regulære uttrykk i Haskell: https://hackage.haskell.org/package/regex-base
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