Os caracteres do Clojure são primitivos java.lang.Character, e podemos manipulá-los por meio da interoperabilidade, usando os métodos da classe Character:
(Character/isDigit \2)
;;=> true
O Clojure vem com uma poderosa biblioteca de processamento de strings, clojure.string. Isso costuma ser mais idiomático do que usar interoperabilidade.
Neste exercício, você vai implementar um conjunto parcial de rotinas utilitárias para ajudar um desenvolvedor a limpar nomes de identificadores.
Nas 5 tarefas, você vai construir aos poucos a função clean.
Um identificador válido é composto por zero ou mais letras e sublinhados.
Em todos os casos, a string de entrada é garantidamente não nula. Se uma string vazia for passada para a função, uma string vazia deve ser retornada.
Repare que quem chama a função deve evitar chamá-la com um identificador vazio, já que identificadores assim não têm efeito.
Implemente a função clean para substituir qualquer espaço por sublinhados.
Isso também vale para espaços no início e no fim.
(clean "my Id")
;;=> "my___Id"
Modifique a função clean para substituir caracteres de controle pela
string "CTRL" em maiúsculas.
Um caractere é considerado um caractere de controle ISO se
seu código estiver no intervalo de '\u0000' a '\u001F'
ou no intervalo de '\u007F' a '\u009F'.
(clean "my\u007FId")
;;=> "myCTRLId"
Modifique a função clean para converter kebab-case em camelCase.
(clean "à-ḃç")
;;=> "àḂç"
Modifique a função clean para omitir quaisquer caracteres que não sejam letras.
Observação: os sublinhados devem ser preservados da etapa anterior.
(clean "1😀2😀3😀")
;; => ""
Modifique a função clean para omitir quaisquer letras gregas no intervalo de 'α' a 'ω'.
(clean "MyΟβιεγτFinder")
;;=> "MyΟFinder"
Crie sua conta no Exercism para aprender e dominar Clojure com 12 conceitos105 exercícios e mentoria humana de verdade, tudo de graça.