הסרת מרכאות ממחרוזת

Haskell:
הסרת מרכאות ממחרוזת

איך לעשות:

ב-Haskell, אנו יכולים ליצור פונקציה שמסירה את כל הציטוטים ממחרוזת נתונה. זה כמו לומר לציטוטים לזוז, ולהבטיח שהם לוקחים את הרמז.

import Data.List (intercalate)
import Data.Char (isPunctuation)

removeQuotes :: String -> String
removeQuotes = filter (\c -> c /= '"' && c /= '\'')

main :: IO ()
main = do
    let stringWithQuotes = "Haskell טען, \"בואו נלמד כמה פונקציות!\""
    putStrLn $ removeQuotes stringWithQuotes

פלט לדוגמא:

Haskell טען, בואו נלמד כמה פונקציות!

צלילה עמוקה

פעם, לפני שמחרוזות בתיכנות היו נפוצות כמו סרטוני חתולים באינטרנט, טיפול בטקסט היה משימה שנויה בקושי. אבל ככל ששפות תכנות התפתחו, מחרוזות הפכו לחלק בלתי נפרד מהתכנות. עם זאת, ציטוטים נשארו חרב פיפיות—חיוניים להגדרת מחרוזות, אך מטרד כשהם כלולים כנתונים אמיתיים.

אלטרנטיבות? במקום לטרוט את כל הציטוטים כמו זבובים, אתה יכול להיות בררני. ייתכן שתרצה להסיר רק את הציטוטים החיצוניים ביותר (גיזום קלאסי) או לטפל בציטוטים מוברחים בתוך מחרוזת.

מבחינה יישומית, הפונקציה removeQuotes למעלה משתמשת בלמבדא כדי לבדוק כל תו (c) אם הוא ציטוט מטריד ולסנן אותו בהתאם. זהו גישה ישירה, אך עבור טקסטים גדולים יותר או כללים מורכבים יותר, ייתכן שתרצה לבדוק ספריות פרסר כמו Parsec, שיכולות לתת לך יותר עדינות וכוח בעיבוד טקסט.

ראו גם: