Impecable

Impecable

Ejercicio de aprendizaje

Introducción

Operaciones con caracteres

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

Utilidades de string

Clojure incluye una potente biblioteca de procesamiento de strings, clojure.string. A menudo es más idiomática que la interoperabilidad.

Instrucciones

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.

1. Reemplaza los espacios que encuentres por guiones bajos

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"

2. Reemplaza los caracteres de control por el string en mayúsculas «CTRL»

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"

3. Convierte kebab-case a camelCase

Modifica la función clean para convertir kebab-case a 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 se deben conservar desde el 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 una pestaña nuevas
Clojure Exercism

¿Todo listo para empezar Impecable?

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