Práctica 1: Programación en LISP Inteligencia Artificial (defun alumnos-nombres (lista) (mapcar #'car lista)) Recorre la lista y muestra el primer elemento de las ternas (NOMBRE) 2. Escribe una función que tome como argumento una lista de alumnos y devuelva una lista con los valores de sus notas medias (defun alumnos-notasmedias (lista) (mapcar #'caddr lista)) Recorre la lista y muestra el último elemento de las ternas (NOTA-MEDIA) 3. Con el fin de dar prioridades a la hora de dar prácticas en empresa, se necesita poder ordenar a los alumnos según su nota media de expediente. Escribe una función no destructiva que tome como argumento una lista de alumnos y la devuelva con los elementos ordenados en orden creciente según su nota media. (defun alumnos-ordena (lista) (let ((aux (copy-tree lista))) (sort aux #'< :key #'caddr))) Primeramente realiza una copia de la lista y a continuación aplica la función destructiva de ordenación 'sort' para ordenar de menor a mayor la lista por el último elemento de las ternas (NOTA-MEDIA) 4. Escribe una función que tome como argumento una lista de alumnos y devuelva una lista compuesta a su vez de dos listas: la primera con los nombres y la segunda con las notas medias. En las lista los elementos deben aparecer ordenados de menor a mayor, según su nota media. (defun alumnos-transforma (lista) (let ((aux (alumnos-ordena lista))) (list (alumnos-nombres aux) (alumnos-notasmedias aux)))) Almacena en una variable local la lista ordenada según 'alumnos-ordena' y a continuación crea una lista con los pares ('alumnos-nombres' , 'alumnos-notasmedias') a partir de esa variable 5. Escribe una función que tome como argumento un valor max y una lista de alumnos y devuelva una sublista compuesta por los alumnos cuya nota media sea igual o menor que max, ordenados de menor a mayor por su nota media (defun alumnos-hasta-maximo (max lista) (remove-if #'(lambda (x) (if (> (caddr x) max) t)) (alumnos-ordena lista))) Elimina de manera no destructiva los elementos cuya última coordenada en la terna sea mayor que 'max' 16