Contenidos Objetivos Historia de Lisp Programaci on Resumen
Programaci on b asica en Lisp
Pedro J. Morales Digital Audio & Computer Music Laboratory. UCLM
July 29, 2007
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Objetivos Historia de Lisp Programaci on Resumen
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Objetivos
Aproximaci on hist orica.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Objetivos
Aproximaci on hist orica. Programaci on b asica.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Aproximaci on hist orica
1960. John McCarthy publica un estudio crucial para la programaci on.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Aproximaci on hist orica
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Aproximaci on hist orica
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Aproximaci on hist orica
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Aproximaci on hist orica
El descubrimiento de McCarthy es un hito en la historia de la programaci on. . .
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Aproximaci on hist orica
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Aproximaci on hist orica
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Aproximaci on hist orica
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Lisp es un lenguaje congurable
Lisp es el lenguaje m as antiguo que se mantiene activo.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Lisp es un lenguaje congurable
Lisp es el lenguaje m as antiguo que se mantiene activo. Lisp se puede programar en Lisp.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Lisp es un lenguaje congurable
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Lisp en la actualidad
Hay diversas variantes que se han decantado en dos dialectos.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Lisp en la actualidad
Hay diversas variantes que se han decantado en dos dialectos. Common Lisp es la variante maximalista.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Lisp en la actualidad
Hay diversas variantes que se han decantado en dos dialectos. Common Lisp es la variante maximalista. Scheme es minimalista.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.
Se empotran en aplicaciones espec cas como lenguajes de scripts
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.
Se empotran en aplicaciones espec cas como lenguajes de scripts
Emacs, editor de texto, elisp.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.
Se empotran en aplicaciones espec cas como lenguajes de scripts
Emacs, editor de texto, elisp. GIMP, editor de gr acos, Scheme.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.
Se empotran en aplicaciones espec cas como lenguajes de scripts
Emacs, editor de texto, elisp. GIMP, editor de gr acos, Scheme. Audacity, editor de audio, Nyquist (XLisp).
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.
Se empotran en aplicaciones espec cas como lenguajes de scripts
Emacs, editor de texto, elisp. GIMP, editor de gr acos, Scheme. Audacity, editor de audio, Nyquist (XLisp). LilyPond, partituras musicales, Scheme.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.
Se empotran en aplicaciones espec cas como lenguajes de scripts
Emacs, editor de texto, elisp. GIMP, editor de gr acos, Scheme. Audacity, editor de audio, Nyquist (XLisp). LilyPond, partituras musicales, Scheme. AutoCAD, dise no t ecnico, AutoLisp (XLisp).
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Expresiones en Lisp
Expresiones Lisp eval ua expresiones.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Expresiones en Lisp
Expresiones Lisp eval ua expresiones. Una expresi on es:
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Expresiones en Lisp
Expresiones Lisp eval ua expresiones. Una expresi on es:
Un atomo
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Expresiones en Lisp
Expresiones Lisp eval ua expresiones. Una expresi on es:
Un atomo Una lista.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Tipos b asicos de datos
Atomos Num ericos:
Listas
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Tipos b asicos de datos
Atomos Num ericos: 7, 12.0, 3.1415
Listas
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Tipos b asicos de datos
Atomos Num ericos: 7, 12.0, 3.1415 S mbolo: Secuencia de caracteres alfanum ericos
Listas
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Tipos b asicos de datos
Atomos Num ericos: 7, 12.0, 3.1415 S mbolo: Secuencia de caracteres alfanum ericos a, nota, c4, mesa Listas
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Tipos b asicos de datos
Atomos Num ericos: 7, 12.0, 3.1415 S mbolo: Secuencia de caracteres alfanum ericos a, nota, c4, mesa Listas Se escriben entre par entesis.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Tipos b asicos de datos
Atomos Num ericos: 7, 12.0, 3.1415 S mbolo: Secuencia de caracteres alfanum ericos a, nota, c4, mesa Listas Se escriben entre par entesis. Contienen un conjunto de elementos ordenados:
(2 45 27), (nota c4)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Tipos b asicos de datos
Atomos Num ericos: 7, 12.0, 3.1415 S mbolo: Secuencia de caracteres alfanum ericos a, nota, c4, mesa Listas Se escriben entre par entesis. Contienen un conjunto de elementos ordenados:
(2 45 27), (nota c4)
Puede estar vac a: ()
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Tipos b asicos de datos
Atomos Num ericos: 7, 12.0, 3.1415 S mbolo: Secuencia de caracteres alfanum ericos a, nota, c4, mesa Listas Se escriben entre par entesis. Contienen un conjunto de elementos ordenados:
(2 45 27), (nota c4)
Puede estar vac a: () O contener elementos que sean listas: (a (b c) (d (e f)))
PJM Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Bucle WAIT-READ-EVAL-PRINT
WAIT Lisp muestra el prompt y espera >
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Bucle WAIT-READ-EVAL-PRINT
WAIT Lisp muestra el prompt y espera > READ El usuario escribe una expresi on > (+ 3 4)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Evaluaci on de atomos
Num ericos: Devuelven su valor.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Evaluaci on de atomos
Num ericos: Devuelven su valor. Simb olicos: Si el nombre comienza por : devuelve el mismo nombre.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Ejemplos
> 5.6
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Ejemplos
> 5.6 5.6
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Ejemplos
> 5.6 5.6 > :zx
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Ejemplos
> 5.6 5.6 > :zx :ZX
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Ejemplos
> 5.6 5.6 > :zx :ZX > dfg
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Ejemplos
> 5.6 5.6 > :zx :ZX > dfg error: unbound variable - DFG if continued: try evaluating symbol again 1>
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Expresiones matem aticas
Se utiliza la notaci on preja. 4 + 3
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Expresiones matem aticas
Se utiliza la notaci on preja. 4 + 3 -> (+ 4 3)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Expresiones matem aticas
Se utiliza la notaci on preja. 4 + 3 -> 4 + 3 (7 - 6) (+ 4 3)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Expresiones matem aticas
Se utiliza la notaci on preja. 4 + 3 -> 4 + 3 (7 - 6) -> (+ 4 3) (+ 4 (* 3 (- 7 6)))
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Expresiones matem aticas
Se utiliza la notaci on preja. 4 + 3 -> 4 + 3 (7 - 6) -> (+ 4 3) (+ 4 (* 3 (- 7 6)))
El primer elemento de la lista es la operaci on
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Expresiones matem aticas
Se utiliza la notaci on preja. 4 + 3 -> 4 + 3 (7 - 6) -> (+ 4 3) (+ 4 (* 3 (- 7 6)))
El primer elemento de la lista es la operaci on Los dem as elementos son los operandos.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Orden normal de evaluaci on
La evaluaci on empieza por las listas m as internas de la expresi on. (+ (* 3 (- 7 6)) 4)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Orden normal de evaluaci on
La evaluaci on empieza por las listas m as internas de la expresi on. (+ (* 3 (- 7 6)) 4) (+ (* 3 1) 4)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Orden normal de evaluaci on
La evaluaci on empieza por las listas m as internas de la expresi on. (+ (* 3 (- 7 6)) 4) (+ (* 3 1) 4) (+ (* 3 1) 4)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Orden normal de evaluaci on
La evaluaci on empieza por las listas m as internas de la expresi on. (+ (+ (+ (+ (* 3 (- 7 6)) 4) (* 3 1) 4) (* 3 1) 4) 3 4)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Orden normal de evaluaci on
La evaluaci on empieza por las listas m as internas de la expresi on. (+ (+ (+ (+ (+ (* 3 (- 7 6)) 4) (* 3 1) 4) (* 3 1) 4) 3 4) 3 4)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Orden normal de evaluaci on
La evaluaci on empieza por las listas m as internas de la expresi on. (+ (+ (+ (+ (+ 7 (* 3 (- 7 6)) 4) (* 3 1) 4) (* 3 1) 4) 3 4) 3 4)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Evaluaci on n de funciones
El primer elemento de la lista es una funci on Se eval ua el resto de los elementos.
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Evaluaci on de formas especiales
Las formas especiales eval uan sus argumentos en distinto orden que las funciones. > (setq x (- 2 3))
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Evaluaci on de formas especiales
Las formas especiales eval uan sus argumentos en distinto orden que las funciones. > (setq x (- 2 3)) ; se evalua el segundo argumento
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Evaluaci on de formas especiales
Las formas especiales eval uan sus argumentos en distinto orden que las funciones. > (setq x (- 2 3)) ; se evalua el segundo argumento ; se asigna el valor del segundo argumento ; al simbolo (que es el primer argumento)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Evaluaci on de formas especiales
Las formas especiales eval uan sus argumentos en distinto orden que las funciones. > (setq x (- 2 3)) ; se evalua el segundo argumento ; se asigna el valor del segundo argumento ; al simbolo (que es el primer argumento) > -1 ; resultado
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Evaluaci on de formas especiales
Las formas especiales eval uan sus argumentos en distinto orden que las funciones. > (setq x (- 2 3)) ; se evalua el segundo argumento ; se asigna el valor del segundo argumento ; al simbolo (que es el primer argumento) > -1 ; resultado > x ; el valor asignado a x es
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Evaluaci on de formas especiales
Las formas especiales eval uan sus argumentos en distinto orden que las funciones. > (setq x (- 2 3)) ; se evalua el segundo argumento ; se asigna el valor del segundo argumento ; al simbolo (que es el primer argumento) > -1 ; resultado > x ; el valor asignado a x es > -1 >
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. SETQ
SETQ Liga un valor a un s mbolo.
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. SETQ
SETQ Liga un valor a un s mbolo. (setq s mbolo valor) Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. SETQ
SETQ Liga un valor a un s mbolo. (setq s mbolo valor) Ejemplos > (setq x 25)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. SETQ
SETQ Liga un valor a un s mbolo. (setq s mbolo valor) Ejemplos > (setq x 25) > (setq do-central :c4)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LET
LET Liga valores locales a uno, varios o ning un s mbolo.
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LET
LET Liga valores locales a uno, varios o ning un s mbolo. (let (ligaduras) expresiones) Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LET
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LET
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LET
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LET
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. COND
COND Eval ua expresiones de manera condicional.
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. COND
COND Eval ua expresiones de manera condicional. (cond (expresi on-l ogica expresiones*)*) Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. COND
COND Eval ua expresiones de manera condicional. (cond (expresi on-l ogica expresiones*)*) Ejemplos > (let ((a 1) (b 2) (c (cond ((eql a ((eql a ((eql a
1) b) c) d)
(d 1)) 1) "Primera expresion" 2) 3)))
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. COND
COND Eval ua expresiones de manera condicional. (cond (expresi on-l ogica expresiones*)*) Ejemplos > (let ((a 1) (b 2) (c (cond ((eql a ((eql a ((eql a 2
1) b) c) d)
(d 1)) 1) "Primera expresion" 2) 3)))
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. QUOTE
QUOTE Bloquea la evaluaci on.
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. QUOTE
QUOTE Bloquea la evaluaci on. (quote s mbolo) devuelve s mbolo
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. QUOTE
QUOTE Bloquea la evaluaci on. (quote s mbolo) devuelve s mbolo Notaci on equivalente: s mbolo Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. QUOTE
QUOTE Bloquea la evaluaci on. (quote s mbolo) devuelve s mbolo Notaci on equivalente: s mbolo Ejemplos > (quote a)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. QUOTE
QUOTE Bloquea la evaluaci on. (quote s mbolo) devuelve s mbolo Notaci on equivalente: s mbolo Ejemplos > (quote a) a
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. QUOTE
QUOTE Bloquea la evaluaci on. (quote s mbolo) devuelve s mbolo Notaci on equivalente: s mbolo Ejemplos > (quote a) a > (setq a (quote b))
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. QUOTE
QUOTE Bloquea la evaluaci on. (quote s mbolo) devuelve s mbolo Notaci on equivalente: s mbolo Ejemplos > (quote a) a > (setq a (quote b)) b
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. QUOTE
QUOTE Bloquea la evaluaci on. (quote s mbolo) devuelve s mbolo Notaci on equivalente: s mbolo Ejemplos > (quote a) a > (setq a (quote b)) b > a
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. QUOTE
QUOTE Bloquea la evaluaci on. (quote s mbolo) devuelve s mbolo Notaci on equivalente: s mbolo Ejemplos > (quote a) a > (setq a (quote b)) b > a b
PJM Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. CONS
CONS Constructor de un par ordenado. Puede construir listas.
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. CONS
CONS Constructor de un par ordenado. Puede construir listas. (cons primer-elemento segundo-elemento) Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. CONS
CONS Constructor de un par ordenado. Puede construir listas. (cons primer-elemento segundo-elemento) Ejemplos > (cons a b)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. CONS
CONS Constructor de un par ordenado. Puede construir listas. (cons primer-elemento segundo-elemento) Ejemplos > (cons a b) (a . b)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. CONS
CONS Constructor de un par ordenado. Puede construir listas. (cons primer-elemento segundo-elemento) Ejemplos > (cons a b) (a . b) > (cons a ())
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. CONS
CONS Constructor de un par ordenado. Puede construir listas. (cons primer-elemento segundo-elemento) Ejemplos > (cons a b) (a . b) > (cons a ()) (a)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. CONS
CONS Constructor de un par ordenado. Puede construir listas. (cons primer-elemento segundo-elemento) Ejemplos > (cons a b) (a . b) > (cons a ()) (a) > (cons a (cons b ()))
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. CONS
CONS Constructor de un par ordenado. Puede construir listas. (cons primer-elemento segundo-elemento) Ejemplos > (cons a b) (a . b) > (cons a ()) (a) > (cons a (cons b ())) (a b)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LIST
LIST Construye listas de forma m as sencilla que CONS.
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LIST
LIST Construye listas de forma m as sencilla que CONS. (list elemento-1 elemento-2 elemento-3 . . . ) Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LIST
LIST Construye listas de forma m as sencilla que CONS. (list elemento-1 elemento-2 elemento-3 . . . ) Ejemplos > (list 1 2 3)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LIST
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LIST
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LIST
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. APPEND
APPEND Concatena listas.
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. APPEND
APPEND Concatena listas. (append lista-1 lista-2 lista-3 . . . ) Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. APPEND
APPEND Concatena listas. (append lista-1 lista-2 lista-3 . . . ) Ejemplos > (setq lista-1 (list 1 2 3))
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. APPEND
APPEND Concatena listas. (append lista-1 lista-2 lista-3 . . . ) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. APPEND
APPEND Concatena listas. (append lista-1 lista-2 lista-3 . . . ) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (setq lista-2 (list 1 a :hola cadena))
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. APPEND
APPEND Concatena listas. (append lista-1 lista-2 lista-3 . . . ) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (setq lista-2 (list 1 a :hola cadena)) (1 a :hola cadena)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. APPEND
APPEND Concatena listas. (append lista-1 lista-2 lista-3 . . . ) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (setq lista-2 (list 1 a :hola cadena)) (1 a :hola cadena) > (append lista-1 lista-2)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. APPEND
APPEND Concatena listas. (append lista-1 lista-2 lista-3 . . . ) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (setq lista-2 (list 1 a :hola cadena)) (1 a :hola cadena) > (append lista-1 lista-2) (1 2 3 1 a :hola cadena)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. FIRST
FIRST. Equivalente a CAR. Selecciona el primer elemento de un par ordenado (o lista).
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. FIRST
FIRST. Equivalente a CAR. Selecciona el primer elemento de un par ordenado (o lista). (rst lista) Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. FIRST
FIRST. Equivalente a CAR. Selecciona el primer elemento de un par ordenado (o lista). (rst lista) Ejemplos > (setq lista-1 (list 1 2 3))
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. FIRST
FIRST. Equivalente a CAR. Selecciona el primer elemento de un par ordenado (o lista). (rst lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. FIRST
FIRST. Equivalente a CAR. Selecciona el primer elemento de un par ordenado (o lista). (rst lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (first lista-1)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. FIRST
FIRST. Equivalente a CAR. Selecciona el primer elemento de un par ordenado (o lista). (rst lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (first lista-1) 1
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. FIRST
FIRST. Equivalente a CAR. Selecciona el primer elemento de un par ordenado (o lista). (rst lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (first lista-1) 1 > (first (cons 5 7))
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. FIRST
FIRST. Equivalente a CAR. Selecciona el primer elemento de un par ordenado (o lista). (rst lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (first lista-1) 1 > (first (cons 5 7)) 5
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. REST
REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista).
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. REST
REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista). (rest lista) Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. REST
REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista). (rest lista) Ejemplos > (setq lista-1 (list 1 2 3))
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. REST
REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista). (rest lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. REST
REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista). (rest lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (rest lista-1)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. REST
REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista). (rest lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (rest lista-1) (2 3)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. REST
REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista). (rest lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (rest lista-1) (2 3) > (rest (cons 5 7))
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. REST
REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista). (rest lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (rest lista-1) (2 3) > (rest (cons 5 7)) 7
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. REST
REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista). (rest lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (rest lista-1) (2 3) > (rest (cons 5 7)) 7 > (first (rest lista-1))
PJM Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. REST
REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista). (rest lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (rest lista-1) (2 3) > (rest (cons 5 7)) 7 > (first (rest lista-1)) 2
PJM Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. EQ
EQ. Detecta si el valor de un s mbolo es id entico a otro.
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. DEFUN
DEFUN. Sirve para denir una funci on de usuario y ligarla a un s mbolo.
Ejemplo: C alculo de la hipotenusa
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. DEFUN
DEFUN. Sirve para denir una funci on de usuario y ligarla a un s mbolo. (defun nombre-funci on lista-de-argumentos cuerpo) Ejemplo: C alculo de la hipotenusa
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. DEFUN
DEFUN. Sirve para denir una funci on de usuario y ligarla a un s mbolo. (defun nombre-funci on lista-de-argumentos cuerpo) Ejemplo: C alculo de la hipotenusa (defun pitagoras (a b) (sqrt (+ (expt a 2.0) (expt b 2.0)))) Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. DEFUN
DEFUN. Sirve para denir una funci on de usuario y ligarla a un s mbolo. (defun nombre-funci on lista-de-argumentos cuerpo) Ejemplo: C alculo de la hipotenusa (defun pitagoras (a b) (sqrt (+ (expt a 2.0) (expt b 2.0)))) Ejemplos > (pitagoras 3 4)
PJM Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. DEFUN
DEFUN. Sirve para denir una funci on de usuario y ligarla a un s mbolo. (defun nombre-funci on lista-de-argumentos cuerpo) Ejemplo: C alculo de la hipotenusa (defun pitagoras (a b) (sqrt (+ (expt a 2.0) (expt b 2.0)))) Ejemplos > (pitagoras 3 4) 5
PJM Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LAMBDA
LAMBDA. Devuelve una funci on sin nombre (sin ligarla a un s mbolo).
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LAMBDA
LAMBDA. Devuelve una funci on sin nombre (sin ligarla a un s mbolo). (lambda lista-de-argumentos cuerpo) Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LAMBDA
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LAMBDA
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. BACKQUOTE
BACKQUOTE. Abreviatura: Al aplicarlo a una lista realiza una evaluaci on selectiva.
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. BACKQUOTE
BACKQUOTE. Abreviatura: Al aplicarlo a una lista realiza una evaluaci on selectiva. Funciona como una plantilla donde s olo se eval uan las expresiones precedidas por una coma.
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. BACKQUOTE
BACKQUOTE. Abreviatura: Al aplicarlo a una lista realiza una evaluaci on selectiva. Funciona como una plantilla donde s olo se eval uan las expresiones precedidas por una coma. (backquote plantilla)
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. BACKQUOTE
BACKQUOTE. Abreviatura: Al aplicarlo a una lista realiza una evaluaci on selectiva. Funciona como una plantilla donde s olo se eval uan las expresiones precedidas por una coma. (backquote plantilla) plantilla Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. BACKQUOTE
BACKQUOTE. Abreviatura: Al aplicarlo a una lista realiza una evaluaci on selectiva. Funciona como una plantilla donde s olo se eval uan las expresiones precedidas por una coma. (backquote plantilla) plantilla Ejemplos > (a b pi c)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. BACKQUOTE
BACKQUOTE. Abreviatura: Al aplicarlo a una lista realiza una evaluaci on selectiva. Funciona como una plantilla donde s olo se eval uan las expresiones precedidas por una coma. (backquote plantilla) plantilla Ejemplos > (a b pi c) (a b pi c)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. BACKQUOTE
BACKQUOTE. Abreviatura: Al aplicarlo a una lista realiza una evaluaci on selectiva. Funciona como una plantilla donde s olo se eval uan las expresiones precedidas por una coma. (backquote plantilla) plantilla Ejemplos > (a b pi c) (a b pi c) > (a b ,pi c)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. BACKQUOTE
BACKQUOTE. Abreviatura: Al aplicarlo a una lista realiza una evaluaci on selectiva. Funciona como una plantilla donde s olo se eval uan las expresiones precedidas por una coma. (backquote plantilla) plantilla Ejemplos > (a b pi c) (a b pi c) > (a b ,pi c) (a b 3.1416 c)
PJM Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. DEFMACRO
DEFMACRO. Crea una expresi on y despu es la eval ua.
Ejemplo
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. DEFMACRO
DEFMACRO. Crea una expresi on y despu es la eval ua. (defmacro nombre-macro lista-de-argumentos cuerpo) Ejemplo
Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. DEFMACRO
DEFMACRO. Crea una expresi on y despu es la eval ua. (defmacro nombre-macro lista-de-argumentos cuerpo) Ejemplo (defmacro mi-setq (plaza valor) (setq ,plaza ,valor)) Ejemplos
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. DEFMACRO
DEFMACRO. Crea una expresi on y despu es la eval ua. (defmacro nombre-macro lista-de-argumentos cuerpo) Ejemplo (defmacro mi-setq (plaza valor) (setq ,plaza ,valor)) Ejemplos > (mi-setq a b)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. DEFMACRO
DEFMACRO. Crea una expresi on y despu es la eval ua. (defmacro nombre-macro lista-de-argumentos cuerpo) Ejemplo (defmacro mi-setq (plaza valor) (setq ,plaza ,valor)) Ejemplos > (mi-setq a b) B
PJM Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. DEFMACRO
DEFMACRO. Crea una expresi on y despu es la eval ua. (defmacro nombre-macro lista-de-argumentos cuerpo) Ejemplo (defmacro mi-setq (plaza valor) (setq ,plaza ,valor)) Ejemplos > (mi-setq a b) B > a
PJM Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. DEFMACRO
DEFMACRO. Crea una expresi on y despu es la eval ua. (defmacro nombre-macro lista-de-argumentos cuerpo) Ejemplo (defmacro mi-setq (plaza valor) (setq ,plaza ,valor)) Ejemplos > (mi-setq a b) B > a B
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Otros tipos de datos
Array Colecci on de datos a los que se accede mediante un ndice num erico.
Ejemplo
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Otros tipos de datos
Array Colecci on de datos a los que se accede mediante un ndice num erico. Creaci on: (make-array tama no)
Ejemplo
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Otros tipos de datos
Array Colecci on de datos a los que se accede mediante un ndice num erico. Creaci on: (make-array tama no) Acceso: (aref array n) Ejemplo
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Otros tipos de datos
Array Colecci on de datos a los que se accede mediante un ndice num erico. Creaci on: (make-array tama no) Acceso: (aref array n) Ejemplo > (setq mi-array (make-array 4))
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Otros tipos de datos
Array Colecci on de datos a los que se accede mediante un ndice num erico. Creaci on: (make-array tama no) Acceso: (aref array n) Ejemplo > (setq mi-array (make-array 4)) #(NIL NIL NIL NIL)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Otros tipos de datos
Array Colecci on de datos a los que se accede mediante un ndice num erico. Creaci on: (make-array tama no) Acceso: (aref array n) Ejemplo > (setq mi-array (make-array 4)) #(NIL NIL NIL NIL) > (setf (aref mi-array 2) 3.14)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Otros tipos de datos
Array Colecci on de datos a los que se accede mediante un ndice num erico. Creaci on: (make-array tama no) Acceso: (aref array n) Ejemplo > (setq mi-array (make-array 4)) #(NIL NIL NIL NIL) > (setf (aref mi-array 2) 3.14) 3.14
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Otros tipos de datos
Array Colecci on de datos a los que se accede mediante un ndice num erico. Creaci on: (make-array tama no) Acceso: (aref array n) Ejemplo > (setq mi-array (make-array 4)) #(NIL NIL NIL NIL) > (setf (aref mi-array 2) 3.14) 3.14 > mi-array
PJM Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Otros tipos de datos
Array Colecci on de datos a los que se accede mediante un ndice num erico. Creaci on: (make-array tama no) Acceso: (aref array n) Ejemplo > (setq mi-array (make-array 4)) #(NIL NIL NIL NIL) > (setf (aref mi-array 2) 3.14) 3.14 > mi-array #(NIL NIL 3.14 NIL)
PJM Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Otros tipos de datos
Strings Secuencia de caracteres alfanum ericos.
Ejemplo
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Otros tipos de datos
Strings Secuencia de caracteres alfanum ericos. Se autoeval uan. Ejemplo
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Otros tipos de datos
Strings Secuencia de caracteres alfanum ericos. Se autoeval uan. Ejemplo > mi-cadena
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Otros tipos de datos
Strings Secuencia de caracteres alfanum ericos. Se autoeval uan. Ejemplo > mi-cadena mi-cadena
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Otros tipos de datos
Strings Secuencia de caracteres alfanum ericos. Se autoeval uan. Ejemplo > mi-cadena mi-cadena > (setq mi-string mi-cadena-2)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Otros tipos de datos
Strings Secuencia de caracteres alfanum ericos. Se autoeval uan. Ejemplo > mi-cadena mi-cadena > (setq mi-string mi-cadena-2) mi-cadena-2
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Otros tipos de datos
Strings Secuencia de caracteres alfanum ericos. Se autoeval uan. Ejemplo > mi-cadena mi-cadena > (setq mi-string mi-cadena-2) mi-cadena-2 > mi-string
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Otros tipos de datos
Strings Secuencia de caracteres alfanum ericos. Se autoeval uan. Ejemplo > mi-cadena mi-cadena > (setq mi-string mi-cadena-2) mi-cadena-2 > mi-string mi-cadena-2
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Entrada
READ READ convierte los caracteres de entrada en expresiones de Lisp.
Ejemplo
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Entrada
READ READ convierte los caracteres de entrada en expresiones de Lisp. (read) Ejemplo
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Entrada
READ READ convierte los caracteres de entrada en expresiones de Lisp. (read) Ejemplo > (setq a (read))
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Entrada
READ READ convierte los caracteres de entrada en expresiones de Lisp. (read) Ejemplo > (setq a (read)) 56
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Entrada
READ READ convierte los caracteres de entrada en expresiones de Lisp. (read) Ejemplo > (setq a (read)) 56 56
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Entrada
READ READ convierte los caracteres de entrada en expresiones de Lisp. (read) Ejemplo > (setq a (read)) 56 56 > a
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Entrada
READ READ convierte los caracteres de entrada en expresiones de Lisp. (read) Ejemplo > (setq a (read)) 56 56 > a 56
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Salida
PRINT PRINT convierte una expresi on de Lisp en una secuencia de caracteres.
Ejemplo
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Salida
PRINT PRINT convierte una expresi on de Lisp en una secuencia de caracteres. (print expresi on) Ejemplo
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Salida
PRINT PRINT convierte una expresi on de Lisp en una secuencia de caracteres. (print expresi on) Ejemplo > (print (list 1 2 3))
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Salida
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. Salida
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LOAD
LOAD Carga el c odigo fuente contenido en un archivo.
Ejemplo
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LOAD
LOAD Carga el c odigo fuente contenido en un archivo. (load path-y-nombre-archivo) ; asume la extensi on .lsp Ejemplo
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LOAD
LOAD Carga el c odigo fuente contenido en un archivo. (load path-y-nombre-archivo) ; asume la extensi on .lsp Ejemplo > (load mifichero)
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Referencia b asica. LOAD
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
Resumen
Se han mostrado los elementos b asicos de Lisp, pero . . .
PJM
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
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
Programaci on b asica en Lisp
Contenidos Objetivos Historia de Lisp Programaci on Resumen
[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. [Link] [Steele, 1990] Guy L. Steele Jr. Common Lisp the Language, 2nd edition Digital Press, 1990. [Link]
PJM
Programaci on b asica en Lisp