Tracks
/
Clojure
Clojure
/
Ejercicios
/
Tracks on Tracks on Tracks
Tracks on Tracks on Tracks

Tracks on Tracks on Tracks

Ejercicio de aprendizaje

Introducción

En Clojure, las listas son colecciones, igual que las listas de otros lenguajes. Al igual que otros lenguajes de la familia Lisp, Clojure usa paréntesis para expresar listas.

Las listas de Clojure se pueden crear de una de dos maneras. La función list puede crear una lista, o puedes citar una lista literal con quote.

Las listas son especiales porque Clojure las trata como llamadas. Espera que la llamada empiece con un operador, que normalmente es una función. Los elementos restantes de la lista se consideran operandos, es decir, pasan a ser los argumentos de la función.

El trato especial que Clojure da a las listas es la razón por la que no podemos crear una lista literal directamente. Citar una lista con quote o con su forma abreviada ' indica que la lista no debe evaluarse.

A diferencia de algunos lenguajes modernos, las listas de Clojure son heterogéneas, lo que significa que pueden contener internamente elementos de varios tipos, por ejemplo, '(2 "a" "b" 3). A diferencia de otros Lisps, una lista vacía en Clojure se considera verdadera y no equivale a nil ni a false.

Instrucciones

En este ejercicio escribirás código para procesar un array de lenguajes de programación que planeas practicar en la plataforma Exercism.

Tienes seis tareas.

1. Crea un array nuevo

Antes de poder agregar lenguajes, tendrás que empezar creando un array nuevo. Define una función que devuelva un array vacío.

(new-list)
;; => ()

2. Agrega un nuevo lenguaje al array

A medida que explores Exercism y encuentres lenguajes que quieras aprender, necesitarás poder agregarlos a tu array. Define una función que agregue un nuevo lenguaje al principio de tu array.

(add-language '("Clojurescript") "JavaScript")
;; => '("JavaScript" "Clojurescript")

3. Verifica el último lenguaje agregado

Querrás verificar rápidamente qué lenguaje acabas de agregar. Define una función que devuelva el primer lenguaje de tu array.

(first-language '("Haskell" "Python"))
;; => "Haskell"

4. Elimina el primer lenguaje del array

A veces cambiarás de opinión sobre un lenguaje que acabas de agregar. Define una función que elimine el primer lenguaje de tu array.

(remove-language '("Common Lisp" "Racket" "Scheme"))
;; => '("Racket" "Scheme")

5. Cuenta los lenguajes del array

Contar los lenguajes uno por uno es incómodo. Define una función que cuente la cantidad de lenguajes de tu array.

(count-languages '("C#" "Racket" "Rust" "Ruby"))
;; => 4

6. Combínalo todo

Define una función learning-list, dentro de la cual usarás algunas de las funciones que definiste antes.

  • Crea un array vacío.

  • Agrega 2 lenguajes de programación nuevos al array.

    • "Clojure"
    • "Lisp"
  • Elimina "Lisp" del array, ya que quizás no tengas suficiente tiempo durante el año y es bastante similar a Clojure.

  • Agrega 2 lenguajes de programación más al array.

    • "Java"
    • "JavaScript"
  • Devuelve el número total de lenguajes. Pista: debería ser 3.

(learning-list)
;; => 3
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Clojure Exercism

¿Todo listo para empezar Tracks on Tracks on Tracks?

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