Символи в Clojure - це примітиви java.lang.Character, і ми можемо працювати з ними через взаємодію з Java, використовуючи методи класу Character:
(Character/isDigit \2)
;;=> true
Clojure постачається з потужною бібліотекою для обробки рядків тексту, clojure.string. Часто це ідіоматичніше, ніж взаємодія з Java.
У цій вправі ми реалізуємо частину набору службових функцій, які допомагають розробникові впорядковувати назви ідентифікаторів.
У пʼяти завданнях ми поступово будемо будувати функцію clean. Коректний ідентифікатор складається з нуля або більше літер і символів підкреслення.
У всіх випадках гарантовано, що вхідний рядок тексту (англ. string) не є nil. Якщо до функції передати порожній рядок тексту, вона має повернути порожній рядок тексту.
Звернімо увагу, що тому, хто викликає, варто уникати виклику функції з порожнім ідентифікатором, бо такі ідентифікатори нічого не дають.
Реалізуйте функцію clean, щоб замінювати пробіли на символи підкреслення. Це стосується також пробілів на початку й у кінці.
(clean "my Id")
;;=> "my___Id"
Змініть функцію clean, щоб вона замінювала керуючі символи на рядок тексту "CTRL" у верхньому регістрі. Символ вважається керуючим символом ISO, якщо його код лежить у діапазоні від '\u0000' до '\u001F' або в діапазоні від '\u007F' до '\u009F'.
(clean "my\u007FId")
;;=> "myCTRLId"
Змініть функцію clean, щоб вона перетворювала kebab-case на camelCase.
(clean "à-ḃç")
;;=> "àḂç"
Змініть функцію clean, щоб вона пропускала будь-які символи, які не є літерами. Зауваження: символи підкреслення потрібно зберегти з попереднього кроку.
(clean "1😀2😀3😀")
;; => ""
Змініть функцію clean, щоб вона пропускала грецькі літери в діапазоні від «α» до «ω».
(clean "MyΟβιεγτFinder")
;;=> "MyΟFinder"
Зареєструйтеся на Exercism, щоб вивчати й опановувати Clojure, а також 12 концепцій105 вправ та справжнє наставництво від людей, і все це безкоштовно.