Видалення лапок зі строки

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 said, \"Let's learn some functions!\""
    putStrLn $ removeQuotes stringWithQuotes

Приклад виводу:

Haskell said, Lets learn some functions!

Поглиблений Розгляд

Колись, до того, як рядки у програмуванні стали такими ж загальними, як відео з котами в інтернеті, робота з текстом була вибагливою справою. Але по мірі еволюції мов програмування, рядки стали важливою частиною кодування. Однак, лапки залишалися мечем на дві грані — необхідні для визначення рядків, але надокучливі, коли включені як фактичні дані.

Альтернативи? Замість того, щоб махати всіма лапками, як мухами, можна бути вибірковим. Можливо, ви захочете видалити тільки зовнішні лапки (класичне обрізання) або обробити лапки з екрануванням всередині рядка.

З точки зору реалізації, вищевказана функція removeQuotes використовує лямбда-вираз для перевірки кожного символу (c), щоб побачити, чи є він дратівливою лапкою, та відповідно вибирає їх. Це прямолінійний підхід, але для більших текстів або складніших правил ви можете подивитися на бібліотеки парсерів, такі як Parsec, які можуть дати вам більше витонченості та потужності при обробці тексту.

Див. також: