Otra práctica de programación en Clojure
{:deps {org.clojure/clojure {:mvn/version "1.10.3"} ;; complient is used for autocompletion ;; add your libs here (and restart the runtime to pick up changes) compliment/compliment {:mvn/version "0.3.9"}}}{:hello (clojure-version)}(ns practicaI (:require [clojure.set :as set]));; importamos las funciones de manejo de conjunto (las vamos a usar mas abajo!)Esta notebook es una copia en formato NextJournal del repositorio que preparó el docente para el curso de Programación I de la Universidad de Flores (UFLO), y que se puede consultar acá:
https://github.com/javierrweiss/programacion-I-practicas
¿Cómo utilizar esta Notebook para responder la consigna?
Recuerden que uds. pueden hacer un Remix de esta notebook para generar una copia propia en su cuenta de nextjournal.
Una vez que hayan realizado los ejercicios, tienen que publicar la notebook (para que sea accesible a través de una dirección web) y enviarnos el link.
Para publicar tiene que ir al menú de Share que se encuentra en la barra superior, y de allí cambiar la Notebook visibility a Public

Luego, hacer click en Publish changes
Para publicar hay que generar un "handle" es decir un nombre para sus notebooks. Si aún no lo hicieron, les va a aparecer el siguiente cuadro de diálogo para que lo introduzcan (yo voy a poner mi nombre):

Finalmente, les va a pedir un nombre para la notebook:

Cuando le den Publish esa notebook ya va a ser pública y la van a poder compartir con nosotros.
IMPORTANTE: la notebook pública no se actualiza automáticamente, asi que si introducen cambios tienen que volver a publicar.
Finalmente, para conseguir la dirección de la notebook que van a compartirnos para entregar el trabajo, pueden hacer click en el botoncito azul que está junto a los datos de la notebook publicada:

Ahora si, a practicar!
(recuerden que en caso de necesitar consultar funciones, pueden hacerlo por aca: https://clojuredocs.org/)
Ejercicio 0
Declare una variable con su nombre y apellido. Escriba en un comentario qué tipo de dato ha empleado.
(def identidad {:nombre "Gaston" :apellido "Becerra"});; usé un mapa para poder separar nombre y apellidoEjercicio 1
Cree un vector de números positivos impares hasta el número 21
(def impares [1 3 5 7 9 11 13 15 17 19 21]);; o hay una manera programatica de secuenciarEjercicio 2
Registre los jugadores de dos equipos de basket y dos de fútbol 5. Al menos 3 jugadores juegan fútbol y basket. Utilice conjuntos.
(def boca-futbol {"maria" "luis" "ana" "pedro" "juan"})(def boca-basket {"maria" "luis" "ana" "kobe" "michael"})(def river-futbol {"mariana" "luisina" "analia" "pedropascal" "juanjose"})(def river-basket {"mariana" "luisina" "analia" "bryant" "jordan"})2.1) Desde la Dirección de Deportes nos piden una lista (lo que no implica devolver esta estructura de datos) de todos los jugadores de ambos deportes. PISTA: utilizar la función (set/union) -ya el namespace está requerido arriba con el alias 'set'.
(set/union boca-futbol boca-basket)(set/union river-futbol river-basket)2.2) Identifique sólo los jugadores que participan en ambas disciplinas. PISTA: Existe una función de conjuntos en el namespace 'clojure.set' para resolver este problema.
(set/intersection boca-futbol boca-basket)(set/intersection river-futbol river-basket)2.3) Identifique los jugadores que juegan fútbol, pero no basket. PISTA: Existe una función de conjuntos en el namespace 'clojure.set' para resolver este problema.
(set/difference boca-futbol boca-basket)(set/difference river-futbol river-basket)Ejercicio 3
Cree un mapa con los 5 principales indicadores provistos en la página del INDEC (https://www.indec.gob.ar/), a saber, población, desocupación, etc.
(def indec { :poblacion 46044703 :desocupacion 6.3 :precio-consumidor 6.6 :produccion-manifacturera -1.3 :estimador-actividad 0.3 })3.1) Utilice la función (juxt) para obtener los valores correspondientes a las llaves que haya elegido para los indicadores 'Tasa de desocupación' e 'Índice de producción industrial manufacturero'.
(:desocupacion indec)(:produccion-manifacturera indec)((juxt :desocupacion :produccion-manifacturera) indec)3.2) Utilice la función (select-keys) para obtener un mapa con el par llave-valor con las llaves que haya elegido para los indicadores 'Población' y 'Precios al consumidor'.
(select-keys indec [:poblacion :precio-consumidor])Ejercicio 4
Cree una función que, recibiendo un nombre como argumento, devuelva un saludo. Ejemplo: (saludar "Juan") => "¡Hola, Juan!"
(defn saludar-onda-REM ;; https://www.youtube.com/watch?v=jWkMhCLkVOg [nombre] (str "What's the frequency " nombre))(saludar-onda-REM "Kenneth")