Академический Документы
Профессиональный Документы
Культура Документы
PJM
PJM
Objetivos
PJM
Objetivos
PJM
PJM
1960. John McCarthy publica un estudio crucial para la programaci on. Con unos pocos operadores y notaci on para funciones se puede construir un lenguaje.
PJM
1960. John McCarthy publica un estudio crucial para la programaci on. Con unos pocos operadores y notaci on para funciones se puede construir un lenguaje. Llam o al lenguaje LISP, por List Processing
PJM
1960. John McCarthy publica un estudio crucial para la programaci on. Con unos pocos operadores y notaci on para funciones se puede construir un lenguaje. Llam o al lenguaje LISP, por List Processing Usaba la lista como estructura para representar tanto datos como programas.
PJM
PJM
El descubrimiento de McCarthy es un hito en la historia de la programaci on. . . . . . tambi en es un modelo que marca la tendencia de los lenguajes actuales.
PJM
El descubrimiento de McCarthy es un hito en la historia de la programaci on. . . . . . tambi en es un modelo que marca la tendencia de los lenguajes actuales. Hay dos modelos: C y Lisp
PJM
El descubrimiento de McCarthy es un hito en la historia de la programaci on. . . . . . tambi en es un modelo que marca la tendencia de los lenguajes actuales. Hay dos modelos: C y Lisp Los lenguajes dise nados en los u ltimos 20 a nos se basan en el modelo de C al que a naden partes de Lisp.
PJM
PJM
Lisp es el lenguaje m as antiguo que se mantiene activo. Lisp se puede programar en Lisp.
PJM
Lisp es el lenguaje m as antiguo que se mantiene activo. Lisp se puede programar en Lisp. Lisp se adapta a cualquier paradigma de programaci on.
PJM
Lisp en la actualidad
PJM
Lisp en la actualidad
Hay diversas variantes que se han decantado en dos dialectos. Common Lisp es la variante maximalista.
PJM
Lisp en la actualidad
Hay diversas variantes que se han decantado en dos dialectos. Common Lisp es la variante maximalista. Scheme es minimalista.
PJM
Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
PJM
Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme
PJM
Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.
PJM
Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.
PJM
Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.
PJM
Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.
PJM
Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.
PJM
Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.
PJM
Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.
PJM
Expresiones en Lisp
PJM
Expresiones en Lisp
PJM
Expresiones en Lisp
PJM
Expresiones en Lisp
PJM
Listas
PJM
Listas
PJM
Listas
PJM
PJM
PJM
PJM
PJM
Bucle WAIT-READ-EVAL-PRINT
PJM
Bucle WAIT-READ-EVAL-PRINT
WAIT Lisp muestra el prompt y espera > READ El usuario escribe una expresi on > (+ 3 4)
PJM
Bucle WAIT-READ-EVAL-PRINT
WAIT Lisp muestra el prompt y espera > READ El usuario escribe una expresi on > (+ 3 4) EVAL Lisp eval ua la expresi on.
PJM
Bucle WAIT-READ-EVAL-PRINT
WAIT Lisp muestra el prompt y espera > READ El usuario escribe una expresi on > (+ 3 4) EVAL Lisp eval ua la expresi on. PRINT Lisp escribe el resultado > 7
PJM
Evaluaci on de atomos
PJM
Evaluaci on de atomos
Num ericos: Devuelven su valor. Simb olicos: Si el nombre comienza por : devuelve el mismo nombre.
PJM
Evaluaci on de atomos
Num ericos: Devuelven su valor. Simb olicos: Si el nombre comienza por : devuelve el mismo nombre. Si tiene ligado un valor devuelve ese valor.
PJM
Evaluaci on de atomos
Num ericos: Devuelven su valor. Simb olicos: Si el nombre comienza por : devuelve el mismo nombre. Si tiene ligado un valor devuelve ese valor. Si no tiene valor ligado, devuelve un error.
PJM
Ejemplos
> 5.6
PJM
Ejemplos
PJM
Ejemplos
PJM
Ejemplos
PJM
Ejemplos
PJM
Ejemplos
> 5.6 5.6 > :zx :ZX > dfg error: unbound variable - DFG if continued: try evaluating symbol again 1>
PJM
PJM
PJM
PJM
PJM
PJM
El primer elemento de la lista es la operaci on Los dem as elementos son los operandos.
PJM
PJM
PJM
PJM
PJM
PJM
PJM
Evaluaci on n de funciones
PJM
Evaluaci on n de funciones
El primer elemento de la lista es una funci on Se eval ua el resto de los elementos. Se aplican como argumentos a la funci on.
PJM
PJM
PJM
PJM
PJM
PJM
PJM
Ejemplos
PJM
PJM
SETQ Liga un valor a un s mbolo. (setq s mbolo valor) Ejemplos > (setq x 25)
PJM
SETQ Liga un valor a un s mbolo. (setq s mbolo valor) Ejemplos > (setq x 25) > (setq do-central :c4)
PJM
Ejemplos
PJM
LET Liga valores locales a uno, varios o ning un s mbolo. (let (ligaduras) expresiones) Ejemplos
PJM
LET Liga valores locales a uno, varios o ning un s mbolo. (let (ligaduras) expresiones) Ejemplos > (let ((a 2) (b 3) (c 4))
(+ a (* 2 b) (/ c 2)))
PJM
LET Liga valores locales a uno, varios o ning un s mbolo. (let (ligaduras) expresiones) Ejemplos > (let ((a 2) (b 3) (c 4)) 10
(+ a (* 2 b) (/ c 2)))
PJM
LET Liga valores locales a uno, varios o ning un s mbolo. (let (ligaduras) expresiones) Ejemplos > (let ((a 2) (b 3) (c 4)) 10 > a
(+ a (* 2 b) (/ c 2)))
PJM
LET Liga valores locales a uno, varios o ning un s mbolo. (let (ligaduras) expresiones) Ejemplos > (let ((a 2) (b 3) (c 4)) (+ a (* 2 b) (/ c 2))) 10 > a error: unbound variable - A
PJM
Ejemplos
PJM
PJM
1) b) c) d)
PJM
1) b) c) d)
PJM
Ejemplos
PJM
Ejemplos
PJM
PJM
PJM
PJM
PJM
PJM
PJM
Ejemplos
PJM
PJM
PJM
PJM
PJM
PJM
PJM
PJM
Ejemplos
PJM
LIST Construye listas de forma m as sencilla que CONS. (list elemento-1 elemento-2 elemento-3 . . . ) Ejemplos
PJM
LIST Construye listas de forma m as sencilla que CONS. (list elemento-1 elemento-2 elemento-3 . . . ) Ejemplos > (list 1 2 3)
PJM
LIST Construye listas de forma m as sencilla que CONS. (list elemento-1 elemento-2 elemento-3 . . . ) Ejemplos > (list 1 2 3) (1 2 3)
PJM
LIST Construye listas de forma m as sencilla que CONS. (list elemento-1 elemento-2 elemento-3 . . . ) Ejemplos > (list 1 2 3) (1 2 3) > (list 1 a :hola cadena)
PJM
LIST Construye listas de forma m as sencilla que CONS. (list elemento-1 elemento-2 elemento-3 . . . ) Ejemplos > (list 1 2 3) (1 2 3) > (list 1 a :hola cadena) (1 a :hola cadena)
PJM
Ejemplos
PJM
PJM
PJM
PJM
PJM
PJM
PJM
PJM
Ejemplos
PJM
PJM
PJM
PJM
PJM
PJM
PJM
PJM
Ejemplos
PJM
PJM
PJM
PJM
PJM
PJM
PJM
PJM
Referencia b asica. EQ
EQ. Detecta si el valor de un s mbolo es id entico a otro.
Ejemplos
PJM
Referencia b asica. EQ
EQ. Detecta si el valor de un s mbolo es id entico a otro. (eq s mbolo-1 s mbolo-2) Ejemplos
PJM
Referencia b asica. EQ
EQ. Detecta si el valor de un s mbolo es id entico a otro. (eq s mbolo-1 s mbolo-2) Ejemplos > (eq a a)
PJM
Referencia b asica. EQ
EQ. Detecta si el valor de un s mbolo es id entico a otro. (eq s mbolo-1 s mbolo-2) Ejemplos > (eq a a) T
PJM
Referencia b asica. EQ
EQ. Detecta si el valor de un s mbolo es id entico a otro. (eq s mbolo-1 s mbolo-2) Ejemplos > (eq a a) T > (eq a b)
PJM
Referencia b asica. EQ
EQ. Detecta si el valor de un s mbolo es id entico a otro. (eq s mbolo-1 s mbolo-2) Ejemplos > (eq a a) T > (eq a b) NIL
PJM
Referencia b asica. EQ
EQ. Detecta si el valor de un s mbolo es id entico a otro. (eq s mbolo-1 s mbolo-2) Ejemplos > (eq a a) T > (eq a b) NIL > (eq (list 1 2 3) (list 1 2 3))
PJM
Referencia b asica. EQ
EQ. Detecta si el valor de un s mbolo es id entico a otro. (eq s mbolo-1 s mbolo-2) Ejemplos > (eq a a) T > (eq a b) NIL > (eq (list 1 2 3) (list 1 2 3)) NIL
PJM
Ejemplos
PJM
Ejemplos
PJM
PJM
Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25)
PJM
Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25
PJM
Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25 > (defun identidad (a) a)
PJM
Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25 > (defun identidad (a) a) IDENTIDAD
PJM
Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25 > (defun identidad (a) a) IDENTIDAD > identidad
PJM
Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25 > (defun identidad (a) a) IDENTIDAD > identidad 25
PJM
Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25 > (defun identidad (a) a) IDENTIDAD > identidad 25 > (function identidad)
PJM
Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25 > (defun identidad (a) a) IDENTIDAD > identidad 25 > (function identidad) #<Closure-IDENTIDAD: #82ae524>
PJM
Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25 > (defun identidad (a) a) IDENTIDAD > identidad 25 > (function identidad) #<Closure-IDENTIDAD: #82ae524> > #identidad
PJM
Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25 > (defun identidad (a) a) IDENTIDAD > identidad 25 > (function identidad) #<Closure-IDENTIDAD: #82ae524> > #identidad #<Closure-IDENTIDAD: #82ae524>
PJM
Ejemplos
PJM
LAMBDA. Devuelve una funci on sin nombre (sin ligarla a un s mbolo). (lambda lista-de-argumentos cuerpo) Ejemplos
PJM
LAMBDA. Devuelve una funci on sin nombre (sin ligarla a un s mbolo). (lambda lista-de-argumentos cuerpo) Ejemplos > ((lambda (a b) (+ a b)) 3 4)
PJM
LAMBDA. Devuelve una funci on sin nombre (sin ligarla a un s mbolo). (lambda lista-de-argumentos cuerpo) Ejemplos > ((lambda (a b) (+ a b)) 3 4) 7
PJM
Ejemplos
PJM
Ejemplos
PJM
Ejemplos
PJM
PJM
PJM
PJM
PJM
Ejemplo
Ejemplos
PJM
Ejemplos
PJM
PJM
PJM
PJM
Ejemplo
PJM
Ejemplo
PJM
PJM
PJM
PJM
PJM
PJM
Ejemplo
PJM
PJM
PJM
PJM
PJM
PJM
PJM
PJM
Ejemplo
PJM
PJM
PJM
PJM
PJM
PJM
PJM
Ejemplo
PJM
PRINT PRINT convierte una expresi on de Lisp en una secuencia de caracteres. (print expresi on) Ejemplo
PJM
PRINT PRINT convierte una expresi on de Lisp en una secuencia de caracteres. (print expresi on) Ejemplo > (print (list 1 2 3))
PJM
PRINT PRINT convierte una expresi on de Lisp en una secuencia de caracteres. (print expresi on) Ejemplo > (print (list 1 2 3)) (1 2 3); lo que imprime en la consola
PJM
PRINT PRINT convierte una expresi on de Lisp en una secuencia de caracteres. (print expresi on) Ejemplo > (print (list 1 2 3)) (1 2 3); lo que imprime en la consola (1 2 3); lo que devuelve
PJM
Ejemplo
PJM
LOAD Carga el c odigo fuente contenido en un archivo. (load path-y-nombre-archivo) ; asume la extensi on .lsp Ejemplo
PJM
LOAD Carga el c odigo fuente contenido en un archivo. (load path-y-nombre-archivo) ; asume la extensi on .lsp Ejemplo > (load mifichero)
PJM
LOAD Carga el c odigo fuente contenido en un archivo. (load path-y-nombre-archivo) ; asume la extensi on .lsp Ejemplo > (load mifichero) T ; T si lo carga, NIL si no lo carga
PJM
Resumen
PJM
Resumen
Se han mostrado los elementos b asicos de Lisp, pero . . . Para realizar proyectos m as extensos hay que conocer las estrategias de programaci on.
PJM
Resumen
Se han mostrado los elementos b asicos de Lisp, pero . . . Para realizar proyectos m as extensos hay que conocer las estrategias de programaci on. Se recomienda el libro [2] y el manual de referencia [1]
PJM
[Dannenberg, 2007] Roger B. Dannenberg. Nyquist Reference Manual, Version 2.33 Carnegie Mellon University, 2007. [Touretzky, 1990] David Touretzky. Common Lisp: A Gentle Introduction to Symbolic Computation. Carnegie Mellon University, 1990. http://www.cs.cmu.edu/~dst/LispBook [Steele, 1990] Guy L. Steele Jr. Common Lisp the Language, 2nd edition Digital Press, 1990. http://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2
PJM