Inteligencia Artificial e Ingeniería
del Conocimiento
Práctica 1:
El lenguaje LISP
Inés González Rodríguez y José Luis Montaña
Objetivos
Introducir conceptos fundamentales de la
programación en LISP
Contenido
Introducción
Guión y Ejercicios: El fichero “[Link]”
Tareas a realizar
Agradecimientos
Referencias
Apéndice: Software
Introducción
LISP=LISt Processor
Lenguaje próximo a lenguajes funcionales:
operación básica es la llamada a función.
Aspecto de un buen programa de LISP:
conjunto de funciones pequeñas que
básicamente hacen llamadas a otras
funciones y pocas asignaciones.
Introducción
Características fundamentales de los
sistemas LISP:
– Evaluador o intérprete que permite evaluar de
forma interactiva una expresión.
– Misma forma (listas) para datos y programas (que
son conjuntos de funciones).
USER: (+ 2 3)
5
USER: (first ‘(a b c))
A
El archivo [Link]
Guión para introducir al alumno al lenguaje
LISP:
– Explicaciones sobre conceptos de LISP
– Posibilidad de evaluar y modificar los ejemplos
Ejercicios propuestos para afianzar los
conocimientos adquiridos.
El archivo [Link]: Contenido
1. Sintaxis básica
1. Tipos de datos
2. s-expresiones
3. Variables
4. Funciones
5. Reglas de evaluación de s-expresiones
6. La referencia quote
7. Comparación
2. Creación y manipulación de listas
1. Creación de listas
2. Acceso a elementos de una lista
3. Comparación de listas
4. Concatenación de listas
5. Listas como conjuntos
El archivo [Link]: Contenido
3. Esquemas de composición de acciones
1. Composición secuencial
2. Enrada y salida elemental
3. Esquemas condicionales
4. Esquemas iterativos
4. Funciones recursivas y predefinidas
1. Ejemplos de definición de funciones
2. Expresiones lambda
3. Las funciones apply y mapcar
4. La función sort
5. Estructuras de datos y Ficheros
1. Estructuras
2. Arrays
3. Tablas hash
4. Ficheros
Tareas a realizar
Seguir el guión de “[Link]”
– Leer atentamente las explicaciones
– Evaluar las expresiones cuando así se sugiere
– Resolver los ejercicios propuestos
Los ejercicios propuestos sirven de preparación
para prácticas siguientes:
– el alumno capaz de resolverlos tendrá un dominio
suficiente del LISP
– algunas funciones pueden ser reutilizadas posteriormente.
Agradecimientos
Esta práctica esta basada en prácticas
similares propuestas por profesores de la
Universidad de Oviedo en las asignaturas:
– Introducción a la Inteligencia Artificial, Ingeniería
Técnica en Informática, E.U.I.T. Informática y
Telemática de Gijón
– Inteligencia Artificial, Ingeniero en Informática,
Escuela Politécnica Superior de Ingeniería de
Gijón
Referencias y Recursos Web
D. B. Lamkins, Successful Lisp: How to Understand and Use Common
Lisp, (2004) [Link]
P. Norvig, Paradigms of artificial intelligence programming : case
studies in common lisp Morgan Kaufmann (1992)
P. Seibel, Practical Common Lisp, Apress, (2005)
[Link]
G. L. Steele, Common Lisp the Language, 2nd ed., Digital Press
(1990) [Link]
D. S. Touretzky, Common Lisp: A Gentle Introduction to Symbolic
Computation (1990) [Link]
CLiki : the common lisp wiki [Link]
Common Lisp HyperSpec (TM)
[Link]
Apéndice: Software
Versión de LISP utilizada en las prácticas: Allegro
CL 8.1 Free Express Edition (de Franz Inc.)
Sistema operativo: existen versiones tanto para
Windows como para Linux
Descarga e instrucciones de instalación:
[Link]
Licencia: Licencia Allegro Express (gratuita, ha de
renovarse por el superusuario cada mes, véase
FAQ, [Link]