Skip to content

Instantly share code, notes, and snippets.

@nihilismus
Created May 20, 2015 16:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nihilismus/4281707e188379306660 to your computer and use it in GitHub Desktop.
Save nihilismus/4281707e188379306660 to your computer and use it in GitHub Desktop.
(ns prueba.main)
(def alumnos
[{:nombre "A"
:apellidos {:paterno "AA" :materno "AAA"}
:sexo "m"
:numero-de-control "12345"
:calificaciones [80 70 80]}
{:nombre "B"
:apellidos {:paterno "BB" :materno "BBB"}
:sexo "f"
:numero-de-control "23456"
:calificaciones [90 70 0]}
{:nombre "C"
:apellidos {:paterno "CC" :materno "CCC"}
:sexo "f"
:numero-de-control "34567"
:calificaciones [100 70 70]}
{:nombre "D"
:apellidos {:paterno "DD" :materno "DDD"}
:sexo "m"
:numero-de-control "45678"
:calificaciones [100 100 90]}
{:nombre "E"
:apellidos {:paterno "EE" :materno "EEE"}
:sexo "f"
:numero-de-control "56789"
:calificaciones [100 70 70]}
{:nombre "F"
:apellidos {:paterno "FF" :materno "FFF"}
:sexo "m"
:numero-de-control "67890"
:calificaciones [100 90 100]}
{:nombre "G"
:apellidos {:paterno "GG" :materno "GGG"}
:sexo "f"
:numero-de-control "78901"
:calificaciones [100 70 80]}])
(defn imprimir-secuencia-de-mapas-como-tabla
[atributos de-los-mapas]
(clojure.pprint/print-table
atributos de-los-mapas))
(defn imprimir-lista-de
[alumnos]
(imprimir-secuencia-de-mapas-como-tabla
[:numero-de-control :nombre :apellidos] alumnos))
(defn promedios-de-los
[alumnos]
(let [cantidad-de-materias-del (fn [alumno]
(count (get alumno :calificaciones)))
suma-de-las-calificaciones-del (fn [alumno]
(reduce + (get alumno :calificaciones)))
promedio-de-las-calificaciones-del (fn [alumno]
(/ (suma-de-las-calificaciones-del alumno)
(cantidad-de-materias-del alumno)))]
(map (fn [alumno]
(assoc alumno :promedio (promedio-de-las-calificaciones-del alumno)))
alumnos)))
(defn imprimir-lista-de-promedios-de-los
[alumnos]
(imprimir-secuencia-de-mapas-como-tabla
[:numero-de-control :promedio] (promedios-de-los alumnos)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment