I caratteri di Clojure sono primitivi java.lang.Character, e possiamo manipolarli tramite interop usando i metodi della classe Character:
(Character/isDigit \2)
;;=> true
Clojure include una potente libreria per l'elaborazione delle stringhe, clojure.string. Spesso è più idiomatico rispetto all'interop.
In questo esercizio implementerai un insieme parziale di routine di utilità per aiutare uno sviluppatore a ripulire i nomi degli identificatori.
Nelle 5 attività costruirai gradualmente la funzione clean. Un identificatore valido è composto da zero o più lettere e trattini bassi.
In tutti i casi è garantito che la stringa di input non sia nil. Se alla funzione viene passata una stringa vuota, deve essere restituita una stringa vuota.
Tieni presente che chi chiama la funzione dovrebbe evitare di passarle un identificatore vuoto, dato che tali identificatori non hanno alcun effetto.
Implementa la funzione clean in modo che sostituisca gli spazi con gli underscore. Questo vale anche per gli spazi all'inizio e alla fine.
(clean "my Id")
;;=> "my___Id"
Modifica la funzione clean in modo che sostituisca i caratteri di controllo con la stringa maiuscola "CTRL". Un carattere è considerato un carattere di controllo ISO se il suo codice è nell'intervallo da '\u0000' a '\u001F' oppure nell'intervallo da '\u007F' a '\u009F'.
(clean "my\u007FId")
;;=> "myCTRLId"
Modifica la funzione clean in modo che converta da kebab-case a camelCase.
(clean "à-ḃç")
;;=> "àḂç"
Modifica la funzione clean in modo che ometta tutti i caratteri che non sono lettere. Nota: i trattini bassi devono essere preservati dal passaggio precedente.
(clean "1😀2😀3😀")
;; => ""
Modifica la funzione clean in modo che ometta le lettere greche nell'intervallo da 'α' a 'ω'.
(clean "MyΟβιεγτFinder")
;;=> "MyΟFinder"
Iscriviti a Exercism per imparare e padroneggiare Clojure con 12 concetti105 esercizi e il mentoring di persone reali, tutto gratis.