Os carateres em Clojure são primitivas java.lang.Character, e podemos manipulá-los através de interop, usando os métodos da classe Character:
(Character/isDigit \2)
;;=> true
O Clojure vem com uma poderosa biblioteca de processamento de strings, clojure.string. Muitas vezes, é mais idiomático do que recorrer ao interop.
Neste exercício vais implementar um conjunto parcial de rotinas utilitárias para ajudar um programador a limpar nomes de identificadores.
Ao longo das 5 tarefas vais construir gradualmente a função clean.
Um identificador válido é composto por zero ou mais letras e underscores.
Em todos os casos, é garantido que a string de entrada não é nil. Se for passada uma string vazia à função, deve ser devolvida uma string vazia.
Repara que quem chama deve evitar chamar a função com um identificador vazio, uma vez que esses identificadores não têm qualquer efeito.
Implementa a função clean para substituir todos os espaços por underscores.
Isto também se aplica a espaços no início e no fim.
(clean "my Id")
;;=> "my___Id"
Modifica a função clean para substituir os carateres de controlo pela string em maiúsculas "CTRL".
Um caráter é considerado um caráter de controlo ISO se o seu código estiver no intervalo de '\u0000' a '\u001F' ou no intervalo de '\u007F' a '\u009F'.
(clean "my\u007FId")
;;=> "myCTRLId"
Modifica a função clean para converter kebab-case em camelCase.
(clean "à-ḃç")
;;=> "àḂç"
Modifica a função clean para omitir todos os carateres que não são letras.
Nota: os underscores têm de ser preservados do passo anterior.
(clean "1😀2😀3😀")
;; => ""
Modifica a função clean para omitir todas as letras gregas no intervalo de 'α' a 'ω'.
(clean "MyΟβιεγτFinder")
;;=> "MyΟFinder"
Inscreve-te no Exercism para aprenderes e dominares Clojure com 12 conceitos105 exercícios, e mentoria humana real, tudo grátis.