Los caracteres de Clojure son primitivas de java.lang.Character, y podemos manipularlos mediante la interoperabilidad usando los métodos de la clase Character:
(Character/isDigit \2)
;;=> true
Clojure incluye una potente biblioteca de procesamiento de strings, clojure.string. A menudo es más idiomática que la interoperabilidad.
En este ejercicio vas a implementar un conjunto parcial de rutinas de utilidad para ayudar a quien programa a limpiar nombres de identificadores.
A lo largo de las 5 tareas irás construyendo poco a poco la función clean. Un identificador válido se compone de cero o más letras y guiones bajos.
En todos los casos, se garantiza que el string de entrada no es nil. Si se pasa un string vacío a la función, se debe devolver un string vacío.
Ten en cuenta que quien llama a la función debe evitar hacerlo con un identificador vacío, ya que esos identificadores no tienen ningún efecto.
Implementa la función clean para reemplazar los espacios por guiones bajos. Esto también aplica a los espacios al inicio y al final.
(clean "my Id")
;;=> "my___Id"
Modifica la función clean para reemplazar los caracteres de control por el string en mayúsculas "CTRL". Un carácter se considera un carácter de control ISO si su código está en el rango «\u0000» a «\u001F» o en el rango «\u007F» a «\u009F».
(clean "my\u007FId")
;;=> "myCTRLId"
Modifica la función clean para convertir kebab-case a camelCase.
(clean "à-ḃç")
;;=> "àḂç"
Modifica la función clean para omitir cualquier carácter que no sea una letra. Nota: los guiones bajos se deben conservar desde el paso anterior.
(clean "1😀2😀3😀")
;; => ""
Modifica la función clean para omitir cualquier letra griega en el rango de «α» a «ω».
(clean "MyΟβιεγτFinder")
;;=> "MyΟFinder"
Regístrate en Exercism para aprender y dominar Clojure con 12 conceptos105 ejercicios y mentoría humana real, todo gratis.