Перетворіть фразу на її акронім.
Айтівці обожнюють свої TLA (трилітерні акроніми)!
Допоможіть згенерувати трохи жаргону: напишіть програму, яка перетворює довгу назву на кшталт Portable Network Graphics на її акронім (PNG).
З розділовими знаками поводимося так: дефіси розділяють слова (як пробіли); усі інші розділові знаки можна прибрати з вхідних даних.
Наприклад:
| Вхід | Вихід |
|---|---|
| As Soon As Possible | ASAP |
| Liquid-crystal display | LCD |
| Thank George It's Friday! | TGIF |
Ця вправа працює з текстовими даними. З історичних причин тип String у Haskell є синонімом до [Char], тобто списку символів. Для ефективнішої роботи з текстовими даними можна використовувати тип Text.
Як необовʼязкове розширення до цієї вправи можна зробити таке:
Прочитайте про типи рядків тексту (англ. string) у Haskell.
Додайте - text до списку залежностей у package.yaml.
Імпортуйте Data.Text у такий спосіб:
import qualified Data.Text as T
import Data.Text (Text)
Тепер можна писати, наприклад, abbreviate :: Text -> Text і звертатися до комбінаторів Data.Text, наприклад, як T.filter.
Знайдіть документацію для Data.Text.
Ця частина цілком необовʼязкова.
Зареєструйтеся на Exercism, щоб вивчати й опановувати Haskell, а також 107 вправ та справжнє наставництво від людей, і все це безкоштовно.
Ми неквапливо поринемо в регулярні вирази: почнемо зі зіставлення пробільних символів, дослідимо Unicode, а закінчимо негативними lookbehind. Наостанок розглянемо інші підходи до вправи «Акронім», зокрема скінченні автомати.