חיפוש והחלפת טקסט

Haskell:
חיפוש והחלפת טקסט

איך לעשות:

ב-Haskell, אפשר לממש חיפוש והחלפה בקלות עם מודול Data.Text:

import Data.Text (Text, replace, pack, unpack)

searchAndReplace :: String -> String -> String -> String
searchAndReplace old new = unpack . replace (pack old) (pack new) . pack

main :: IO ()
main = putStrLn $ searchAndReplace "world" "Haskell" "Hello, world!"

פלט:

Hello, Haskell!

ניחוח לעומק

החלפת טקסט היא פעולה עתיקה ככתיבה עצמה, אבל בתכנות היא נעשית חשובה במיוחד עם העלייה בשימוש בעיבוד טקסט אוטומטי. בהקשר של Haskell, קיימים כמה מודולים חלופיים לעיבוד טקסט, כולל Text.Regex שמתמקד בביטויים רגולריים, אולם Data.Text הוא פשוט ויעיל לרוב המקרים. יתרון של Data.Text הוא שהוא מאוחסן בזיכרון בצורה יעילה יותר ממחרוזות רגילות (String), ולכן גם פעולות כמו חיפוש והחלפה רצות מהר יותר.

ראו גם

  • התיעוד של Data.Text ב-Hackage: Data.Text
  • מדריך לביטויים רגולריים ב-Haskell: Text.Regex
  • ספר על עיבוד טקסט וביטויים רגולריים ב-Haskell: “Real World Haskell” פרק 8: Real World Haskell