Tarea2inteligencia Artificial
Tarea2inteligencia Artificial
Tarea2inteligencia Artificial
Matricula: A21000654.
Introducción
Common Lisp (List processing) es un lenguaje funcional que utiliza una notación prefija. Es un lenguaje
muy poderoso para el manejo de expresiones simbólicas. Sus elementos básicos son: átomos, listas y
cadenas de caracteres. En nuestro curso usamos un intérprete de Common Lisp que utiliza el lazo repetitivo
lee-evalúa-imprime. Common Lisp tiene interconstruidas una gran cantidad de funciones matemáticas,
lógicas, predicados, para el manejo de listas, etc. Es un lenguaje no tipado por lo que no es necesario
declarar variables ni tipos antes de usarse. Su principal inconveniente es su exagerado uso de paréntesis,
pero es algo a lo que sus fans llegan a acostumbrarse.
Objetivo
Utilizar las funciones propias de Common Lisp para la manipulación de listas y para el manejo de
operaciones matemáticas, aprendiendo el manejo de la notación prefija.
Actividades
1.- Suponiendo la siguiente definición:
(setq milista '((bush iraq) (nixon watergate) (lopez_obrador complot) (pri pemex_gate) (pan amigos_de_fox) (ver tele) (no
correo_electronico por_favor) (va mexico mundial)))
y basándose en las funciones de Clisp para la manipulación de listas, define y prueba las funciones
necesarias para generar las siguientes listas:
2.- Tomando cómo ejemplo el siguiente código que calcula el área y perímetro de un círculo:
(defun area-perimetro ()
(princ “teclea el radio, por favor: “)
(setq radio (read))
(setq perimetro (* 2 pi radio))
(setq area (* pi radio radio))
(format t “Radio: ~5F. Perimetro: ~5F. Area: ~5F” radio perimetro area)
)
2.1.- Define una función que pida los valores de a, b y c, evalúe y despliegue el resultado de la siguiente
función:
f = (b2 – 4ac)1/2
(defun ejercicio ()
(princ “Ingresa el valor de a: “)
(setq a (read))
(princ “Ingresa el valor de b: “)
(setq b (read))
(princ “Ingresa el valor de c: “)
(setq c (read))
(setq f (sqrt (- (expt b 2) (*4 a c))))
(princ f)
)
3.- Un palíndromo es una secuencia de caracteres que se leen igual al derecho que al revés. La función
PALINDROMEP siguiente verifica si una lista es un palíndromo.
Por ejemplo:
>(palindromop '(1 2 3 4 5 4 3 2 1))
T
>(palindromop '(a b b a))
T
>(palindromop '(1 2 3))
NIL
Escribe una versión recursiva de esta función y llámala R-PALINDROMOP sin usar la función reverse.
(Inserta aquí el código de R-PALINDROMOP)
La instalación del programa Common List es muy fácil y rápida de instalar no se me complico y la gran
ventaja es que el programa es compatible con cualquier sistema operativo por lo que se facilita su
instalación, Y para poder resolver mi actividad vi varios videos sobre sus funciones. Ya que este programa
no lo conocía y gracias a los videos pude manipular y ejecutar sin ningún inconveniente el programa
Common List.
Referencias
Franco, B. (30 de octubre de 2020). Ejercicios LISP - Paradigmas de Programacion [Vídeo]. YouTube. .
Obtenido de https://www.youtube.com/watch?v=JcCOIOJ6SP8