Rutas
/
Clojure
Clojure
/
Ejercicios
/
Pistas sobre pistas sobre pistas
Pistas sobre pistas sobre pistas

Pistas sobre pistas sobre pistas

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 dos maneras. La función list puede crear una lista, o puedes usar quote sobre una lista literal.

Las listas son especiales porque Clojure las trata como llamadas. Espera que la llamada empiece por un operador, que normalmente es una función. Los elementos restantes de la lista se consideran operandos, lo que significa que se convierten en 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. Poner una lista entre comillas 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 varios tipos de elementos en su interior, por ejemplo, '(2 "a" "b" 3). A diferencia de otros Lisp, una lista vacía en Clojure es verdadera y no equivale a nil ni a false.

Instrucciones

En este ejercicio vas a escribir código para procesar un array de lenguajes de programación que tienes pensado practicar en la plataforma Exercism.

Tienes seis tareas.

1. Crear un array nuevo

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

(new-list)
;; => ()

2. Añadir un lenguaje nuevo al array

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

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

3. Comprobar el último lenguaje añadido

Querrás comprobar rápidamente qué lenguaje acabas de añadir. Define una función que devuelva el primer lenguaje de tu array.

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

4. Eliminar el primer lenguaje del array

A veces cambiarás de opinión sobre un lenguaje que acabas de añadir. Define una función para eliminar el primer lenguaje de tu array.

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

5. Contar los lenguajes del array

Contar los lenguajes uno a uno es incómodo. Define una función que cuente el número de lenguajes de tu array.

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

6. Unirlo todo

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

  • Crea un array vacío.

  • Añade 2 lenguajes de programación nuevos al array.

    • «Clojure»
    • «Lisp»
  • Elimina «Lisp» del array, ya que puede que no tengas tiempo suficiente para el año, y es bastante similar a Clojure.

  • Añade 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 pestaña nueva
Clojure Exercism

¿Listo para empezar Pistas sobre pistas sobre pistas?

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