Треки
/
Clojure
Clojure
/
Вправи
/
Бездоганно чисто
Бездоганно чисто

Бездоганно чисто

Навчальна вправа

Вступ

Операції над символами

Символи в Clojure - це примітиви java.lang.Character, і ми можемо працювати з ними через взаємодію з Java, використовуючи методи класу Character:

(Character/isDigit \2)
;;=> true

Робота з рядками тексту (англ. string)

Clojure постачається з потужною бібліотекою для обробки рядків тексту, clojure.string. Часто це ідіоматичніше, ніж взаємодія з Java.

Вказівки

У цій вправі ми реалізуємо частину набору службових функцій, які допомагають розробникові впорядковувати назви ідентифікаторів.

У пʼяти завданнях ми поступово будемо будувати функцію clean. Коректний ідентифікатор складається з нуля або більше літер і символів підкреслення.

У всіх випадках гарантовано, що вхідний рядок тексту (англ. string) не є nil. Якщо до функції передати порожній рядок тексту, вона має повернути порожній рядок тексту.

Звернімо увагу, що тому, хто викликає, варто уникати виклику функції з порожнім ідентифікатором, бо такі ідентифікатори нічого не дають.

1. Замініть усі пробіли на символи підкреслення

Реалізуйте функцію clean, щоб замінювати пробіли на символи підкреслення. Це стосується також пробілів на початку й у кінці.

(clean "my   Id")
;;=> "my___Id"

2. Замініть керуючі символи на рядок тексту «CTRL» у верхньому регістрі

Змініть функцію clean, щоб вона замінювала керуючі символи на рядок тексту "CTRL" у верхньому регістрі. Символ вважається керуючим символом ISO, якщо його код лежить у діапазоні від '\u0000' до '\u001F' або в діапазоні від '\u007F' до '\u009F'.

(clean "my\u007FId")
;;=> "myCTRLId"

3. Перетворіть kebab-case на camelCase

Змініть функцію clean, щоб вона перетворювала kebab-case на camelCase.

(clean "à-ḃç")
;;=> "àḂç"

4. Пропустіть символи, які не є літерами

Змініть функцію clean, щоб вона пропускала будь-які символи, які не є літерами. Зауваження: символи підкреслення потрібно зберегти з попереднього кроку.

(clean "1😀2😀3😀")
;; => ""

5. Пропустіть грецькі літери в нижньому регістрі

Змініть функцію clean, щоб вона пропускала грецькі літери в діапазоні від «α» до «ω».

(clean "MyΟβιεγτFinder")
;;=> "MyΟFinder"
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Clojure Exercism

Час розпочати Бездоганно чисто?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Clojure, а також 12 концепцій105 вправ та справжнє наставництво від людей, і все це безкоштовно.