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 “practica2.lsp” 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 practica2.lsp
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 practica2.lsp: Contenido
1.

Sintaxis básica
1. 2. 3. 4. 5. 6. 7.

Tipos de datos s-expresiones Variables Funciones Reglas de evaluación de s-expresiones La referencia quote Comparación Creación de listas Acceso a elementos de una lista Comparación de listas Concatenación de listas Listas como conjuntos

2.

Creación y manipulación de listas
1. 2. 3. 4. 5.

El archivo practica2.lsp: Contenido
3.

Esquemas de composición de acciones
1. 2. 3. 4.

Composición secuencial Enrada y salida elemental Esquemas condicionales Esquemas iterativos Ejemplos de definición de funciones Expresiones lambda Las funciones apply y mapcar La función sort Estructuras Arrays Tablas hash Ficheros

4.

Funciones recursivas y predefinidas
1. 2. 3. 4.

5.

Estructuras de datos y Ficheros
1. 2. 3. 4.

Tareas a realizar
Seguir el guión de “practica2.lsp”
– – –

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) http://www.psg.com/~dlamkins/sl/ P. Norvig, Paradigms of artificial intelligence programming : case studies in common lisp Morgan Kaufmann (1992) P. Seibel, Practical Common Lisp, Apress, (2005) http://www.gigamonkeys.com/book/ G. L. Steele, Common Lisp the Language, 2nd ed., Digital Press (1990) http://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html D. S. Touretzky, Common Lisp: A Gentle Introduction to Symbolic Computation (1990) http://www.cs.cmu.edu/~dst/LispBook/index.html CLiki : the common lisp wiki http://www.cliki.net/index Common Lisp HyperSpec (TM) http://www.lispworks.com/documentation/HyperSpec/Front/index.htm

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:
http://www.franz.com/downloads/allegrodownload.lhtml

Licencia: Licencia Allegro Express (gratuita, ha de renovarse por el superusuario cada mes, véase FAQ, http://www.franz.com/support/faq/)

Sign up to vote on this title
UsefulNot useful