Impecable

Impecable

Ejercicio de aprendizaje

Introducción

Operaciones con caracteres

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

Utilidades de string

Clojure incluye una potente biblioteca para procesar strings, clojure.string. A menudo resulta más idiomática que la interoperabilidad.

Instrucciones

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.

1. Sustituye los espacios que encuentres por guiones bajos

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"

2. Sustituye los caracteres de control por el string en mayúsculas "CTRL"

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"

3. Convierte kebab-case a camelCase

Modifica la función clean para convertir kebab-case en camelCase.

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

4. Omite los caracteres que no sean letras

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

5. Omite las letras griegas minúsculas

Modifica la función clean para omitir cualquier letra griega en el rango de 'α' a 'ω'.

(clean "MyΟβιεγτFinder")
;;=> "MyΟFinder"
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Clojure Exercism

¿Listo para empezar Impecable?

Regístrate en Exercism para aprender y dominar Clojure con 12 conceptos105 ejercicios y mentoría humana real, todo gratis.