Haskell:
Usuwanie znaków pasujących do wzorca
Jak to zrobić:
import Data.List (isInfixOf)
deletePattern :: String -> String -> String
deletePattern pattern = filter (not . isInfixOf pattern . (:[]))
main :: IO ()
main = do
let text = "Hej, to jest przykładowy tekst."
let pattern = "kł"
putStrLn $ "Przed: " ++ text
putStrLn $ "Po: " ++ deletePattern pattern text
Output:
Przed: Hej, to jest przykładowy tekst.
Po: Hej, to jest przyadowy tekst.
Dogłębna analiza
Usuwanie znaków pojawia się w wielu zadaniach programistycznych, od prostego czyszczenia stringów po zapewnienie bezpieczeństwa poprzez usunięcie potencjalnie szkodliwych sekwencji. Rozwiązanie w Haskellu korzysta z wyrażeń funkcyjnych, które są eleganckim narzędziem do pracy z kolekcjami danych. Haskell oferuje alternatywne metody, jak moduł Text.Regex
, który umożliwia bardziej zaawansowane operacje z wykorzystaniem wyrażeń regularnych. Implementacja deletePattern
pokazuje, jak możliwości Haskella są wykorzystywane do tworzenia zwięzłego i czytelnego kodu.