Haskell:
Виділення підрядків
Як робити:
У Haskell можна витягувати підрядки, використовуючи функції take
, drop
, splitAt
та срізи списків. Ось базові приклади:
main :: IO ()
main = do
let text = "Привіт, як справи?"
-- Використання take
print $ take 6 text -- "Привіт"
-- Використання drop
print $ drop 7 text -- "як справи?"
-- Використання splitAt
let (start, end) = splitAt 7 text
print start -- "Привіт,"
print end -- "як справи?"
-- Використання срізів списків (це не стандарт Haskell, але бібліотека)
-- Наприклад, можемо використати бібліотеку Data.List.Split (див. розділ "Див. також")
Поглиблений розгляд:
В Haskell, як і в багатьох інших функціональних мовах, рядки є переліками символів. Текстові операції часто ґрунтуються на операціях зі списками.
Традиційно, Haskell використовує “ліниву оцінку”, що означає, що елементи рядків обробляються лише тоді, коли вони потрібні. Це робить витягування підрядків відносно ефективним, оскільки ви не обробляєте весь текст.
Більше того, існують бібліотеки, як Data.Text
для оптимізованої роботи з текстом та Data.List.Split
для розширених операцій розділення. Ці бібліотеки надають зручні функції для маніпуляції рядками. Наприклад, Data.List.Split
може розділити рядки за розділювачами та по індексу.
Див. також:
- Hackage: Data.Text library
- Hackage: Data.List.Split library
- Haskell Wiki: Рядки
- Learn You a Haskell for Great Good! - Starting Out (Chapter on Lists)
Ці ресурси можуть допомогти вам краще зрозуміти текстові операції в Haskell і практично їх застосувати.