La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programación en LISP Rogelio Dávila Pérez Profesor - Investigador

Presentaciones similares


Presentación del tema: "Programación en LISP Rogelio Dávila Pérez Profesor - Investigador"— Transcripción de la presentación:

1 Programación en LISP Rogelio Dávila Pérez Profesor - Investigador

2 Programación en LISP Aviso Los apuntes incluidos en esta presentación representan un resumen de algunos de los capítulos del libro: Programming in LISP (3th Edition) Patrick Henry Winston & Berthold Klaus Paul Horn Addison-Wesley Publishers, 1989

3 Programación LISP LISP es un lenguaje de programación funcional que significa List Processing. La versión más estándar de LISP es el COMMON LISP. LISP es un lenguaje de manipulación simbólica que favorece la realización de aplicaciones en inteligencia artificial. LISP fue inventado por John McCarthy en la época de los 50´s. LISP esta basado en un formalismo muy poderoso llamado el cálculo- introducido por Church en los 40´s.

4 Números: LISP permite los siguientes formatos de números: 45 un entero -8 un entero negativo #¡ representación inexacta de un real Operadores: Todas las operaciones en LISP se escriben en notación prefija: 4 + 8(+ 4 8) 9/4(/ 9 4) -4+4(+ -4 4) 6*5(* 6 5) 6-3(- 6 3) Programación LISP

5 Tipos básicos de expresiones en LISP Número: 4, 7.28, -9 Atomo Símbolo: foo, alpha-beta Expresión Lista: (a b c d), (luis pedro mario) Programación LISP

6 Expresiones aritméticas: (2+3)*((29-13)/(5+3)) (* (+ 2 3) (/ ( ) (+ 5 3))) Esta expresión se ejecuta evaluando primero los operadores más internos como se muestra a continuación: (* (+ 2 3) (/ ( ) (+ 5 3))) = (* 5 (/ ( ) (+ 5 3))) = (* 5 (/ 16 (+ 5 3))) = (* 5 (/ 16 8)) = (* 5 2) = 10

7 Algunas operaciones primitivas raíz cuadrada de A:(sqrt A) exponente A b :(exp A b) Logaritmo natural de A:(log A) seno de A en radianes:(sin A) resto de A B:(remainder A B) = A –B*(A div B) Programación LISP

8 Definición de constantes: (setf PI )(setf HEIGHT 160) (setf WIDTH 50) El nombre de una variable inicia con una letra seguida de letras o números y acepta el caracter -: x, x25, salary, area-of-square, … Programación LISP

9 Definición de Función Formato general: (defun ( ) ( )) Ejemplo: Area del Círculo: A = r 2 Función: (defun (area-del-circulo r) (* 3.14 (* r r))) Programación LISP

10 Programas sencillos La principal función de Lisp es como manipulador simbólico. Lisp es un intérprete que ejecuta las funciones definidas por el programador. Ejemplos: a).* ( ) 5.85 b). * (setf friends ´(peter louise mary)) * friends (peter louise mary)

11 Programación LISP c). * (setf enemies ´(tronch grinch ghost)) * (setf enemies (remove ´ghost enemies)) * (setf friends (cons ´ghost friends)) * enemies (grinch ghost) * friends (ghost peter louise mary)

12 Programación LISP Definición de funciones a). (defun newfriend (name) (setf enemies (remove name enemies)) (setf friends (cons name friends))) la función se ejecuta: * (newfriend ´ghost)

13 Ejercicios: a) Area-del-cuadrado: A = L 2 b) 2/3 + sin(gamma) c) n/3 + 2 d) ½ n e) 2 – 1/n f) 6x 4 +x 3 +5x 2 +4x+1 g) Grados a radianes h) h=sqrt( x 2 + y 2 ) i) Volumen de un cilindro con radio r y altura h. j) Evaluar distancia entre dos puntos. Programación LISP

14 Listas Una lista en Lisp consiste de un paréntesis izquierdo (, una secuencia de atomos o listas y un paréntesis derecho ). Ejemplos de listas: (verde blanco rojo) ( ) ((1 2) (3 4) (5 6) (7 8)) nil % lista vacía Programación LISP

15 Operaciones con Listas Algunas operaciones primitivas para la manipulación de listas son: first, rest, append, list y cons. Programación LISP


Descargar ppt "Programación en LISP Rogelio Dávila Pérez Profesor - Investigador"

Presentaciones similares


Anuncios Google