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