En Clojure, los caracteres son primitivas de java.lang.Character, y podemos manipularlos mediante la interoperabilidad con Java, usando los métodos de la clase Character:
(Character/isDigit \2)
;;=> true
Clojure incluye una potente biblioteca para procesar strings, clojure.string. A menudo resulta más idiomática que la interoperabilidad.
En este ejercicio vas a implementar un conjunto parcial de rutinas auxiliares para ayudar a un desarrollador a limpiar nombres de identificadores.
En las 5 tareas irás construyendo poco a poco la función clean. Un identificador válido consta de cero o más letras y guiones bajos.
En todos los casos, se garantiza que el string de entrada no es nulo. Si se le pasa un string vacío a la función, debe devolverse un string vacío.
Ten en cuenta que quien llame a la función debería evitar pasarle un identificador vacío, ya que esos identificadores no sirven de nada.
Implementa la función clean para sustituir los espacios por guiones bajos. Esto también se aplica a los espacios al principio y al final.
(clean "my Id")
;;=> "my___Id"
Modifica la función clean para sustituir 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 de '\u0000' a '\u001F' o en el rango de '\u007F' a '\u009F'.
(clean "my\u007FId")
;;=> "myCTRLId"
Modifica la función clean para convertir kebab-case en camelCase.
(clean "à-ḃç")
;;=> "àḂç"
Modifica la función clean para omitir cualquier carácter que no sea una letra. Nota: los guiones bajos deben conservarse del 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.