Limpinho

Limpinho

Exercício de aprendizagem

Introdução

Operações com caracteres

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

Utilitários de string

O Clojure vem com uma poderosa biblioteca de processamento de strings, clojure.string. Isso costuma ser mais idiomático do que usar interoperabilidade.

Instruções

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.

1. Substitua os espaços encontrados por sublinhados

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"

2. Substitua caracteres de controle pela string "CTRL" em maiúsculas

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"

3. Converta kebab-case em camelCase

Modifique a função clean para converter kebab-case em camelCase.

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

4. Omita caracteres que não são letras

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😀")
;; => ""

5. Omita letras gregas minúsculas

Modifique a função clean para omitir quaisquer letras gregas no intervalo de 'α' a 'ω'.

(clean "MyΟβιεγτFinder")
;;=> "MyΟFinder"
Editar via GitHub O link abre em uma nova janela ou aba
Clojure Exercism

Tudo pronto para começar Limpinho?

Crie sua conta no Exercism para aprender e dominar Clojure com 12 conceitos105 exercícios e mentoria humana de verdade, tudo de graça.