Удаление кавычек из строки

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, которые могут предоставить вам больше изящества и мощности в обработке текста.

Смотрите также: