Les caractères en Clojure sont des primitives java.lang.Character, et on peut les manipuler via l'interopérabilité en utilisant les méthodes de la classe Character :
(Character/isDigit \2)
;;=> true
Clojure est livré avec une puissante bibliothèque de traitement des chaînes de caractères, clojure.string. Elle est souvent plus idiomatique que l'interopérabilité.
Dans cet exercice, tu vas implémenter un ensemble partiel de routines utilitaires pour aider un développeur à nettoyer des noms d'identifiants.
Au fil des 5 tâches, tu vas construire progressivement la fonction clean. Un identifiant valide comprend zéro ou plusieurs lettres et tirets bas.
Dans tous les cas, on garantit que la string en entrée n'est pas nulle. Si une string vide est passée à la fonction, c'est une string vide qui doit être renvoyée.
Note que l'appelant doit éviter d'appeler la fonction avec un identifiant vide, car de tels identifiants n'ont aucun effet.
Implémente la fonction clean pour remplacer les espaces par des tirets bas. Cela s'applique aussi aux espaces en début et en fin.
(clean "my Id")
;;=> "my___Id"
"CTRL"
Modifie la fonction clean pour remplacer les caractères de contrôle par la chaîne de caractères majuscule "CTRL". Un caractère est considéré comme un caractère de contrôle ISO si son code se situe dans la plage allant de '\u0000' à '\u001F' ou dans la plage allant de '\u007F' à '\u009F'.
(clean "my\u007FId")
;;=> "myCTRLId"
kebab-case en camelCase
Modifie la fonction clean pour convertir le kebab-case en camelCase.
(clean "à-ḃç")
;;=> "àḂç"
Modifie la fonction clean pour omettre tous les caractères qui ne sont pas des lettres.
Remarque : les tirets bas doivent être conservés depuis l'étape précédente.
(clean "1😀2😀3😀")
;; => ""
Modifie la fonction clean pour omettre les lettres grecques comprises entre 'α' et 'ω'.
(clean "MyΟβιεγτFinder")
;;=> "MyΟFinder"
Inscris-toi sur Exercism pour apprendre et maîtriser Clojure avec 12 concepts105 exercices, et un vrai mentorat humain, le tout gratuitement.