Contenidos Objetivos Historia de Lisp Programaci´ on on Resumen
Programaci´ on on b´ asic asica a en Li Lisp sp Pedro J. Morales Digital Audio & Computer Music Laboratory. UCLM
July 29, 2007
Contenidos Objetivos Historia de Lisp Programaci´ on on Resumen
1
Objetivos
2
Historia de Lisp
3
Programaci´ on on
4
Resumen
Contenidos Objetivos Historia de Lisp Programaci´ on on Resumen
Objetivos
Aproximaci´on on hist´ orica. orica.
Contenidos Objetivos Historia de Lisp Programaci´ on on Resumen
Objetivos
Aproximaci´on on hist´ orica. orica. Programaci´ on b´asica.
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Aproximaci´ on hist´ orica
1960. John McCarthy publica un estudio crucial para la programaci´on.
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.
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”
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.
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´o n...
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´o n... . . . tambi´en es un modelo que marca la tendencia de los lenguajes actuales.
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´o n... . . . tambi´en es un modelo que marca la tendencia de los lenguajes actuales. Hay dos modelos: C y 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´o n... . . . 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.
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Lisp es un lenguaje configurable
Lisp es el lenguaje m´as antiguo que se mantiene activo.
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Lisp es un lenguaje configurable
Lisp es el lenguaje m´as antiguo que se mantiene activo. Lisp se puede programar en Lisp.
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Lisp es un lenguaje configurable
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.
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Lisp en la actualidad
Hay diversas variantes que se han decantado en dos dialectos.
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.
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.
Contenidos Objetivos Historia de Lisp Programaci´ on on Resumen
Aplicaciones
Adem´ as as de las implementaciones de Lisp como lenguaje, las versione vers ioness m´as as peque˜ eque˜ nas nas
Contenidos Objetivos Historia de Lisp Programaci´ on on Resumen
Aplicaciones
Adem´ as as de las implementaciones de Lisp como lenguaje, las versione vers ioness m´as as peque˜ eque˜ nas nas Scheme
Contenidos Objetivos Historia de Lisp Programaci´ on on Resumen
Aplicaciones
Adem´ as as de las implementaciones de Lisp como lenguaje, las versione vers ioness m´as as peque˜ eque˜ nas nas Scheme Subconjuntos de Common Lisp: XLisp, elisp.
Contenidos Objetivos Historia de Lisp Programaci´ on on Resumen
Aplicaciones
Adem´ as as de las implementaciones de Lisp como lenguaje, las versione vers ioness m´as as peque˜ eque˜ nas nas Scheme Subconjuntos de Common Lisp: XLisp, elisp.
Se empotran en aplicaciones espec´ espec´ıficas como lenguajes de scripts
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´ıficas como lenguajes de scripts Emacs, editor de texto, elisp.
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´ıficas como lenguajes de scripts Emacs, editor de texto, elisp. GIMP, editor de gr´aficos, Scheme.
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´ıficas como lenguajes de scripts Emacs, editor de texto, elisp. GIMP, editor de gr´aficos, Scheme. Audacity, editor de audio, Nyquist (XLisp).
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´ıficas como lenguajes de scripts Emacs, editor de texto, elisp. GIMP, editor de gr´aficos, Scheme. Audacity, editor de audio, Nyquist (XLisp). LilyPond, partituras musicales, Scheme.
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´ıficas como lenguajes de scripts Emacs, editor de texto, elisp. GIMP, editor de gr´aficos, Scheme. Audacity, editor de audio, Nyquist (XLisp). LilyPond, partituras musicales, Scheme. AutoCAD, dise˜no t´ecnico, AutoLisp (XLisp).
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Expresiones en Lisp
Expresiones Lisp eval´ ua expresiones.
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Expresiones en Lisp
Expresiones Lisp eval´ ua expresiones. Una expresi´on es:
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Expresiones en Lisp
Expresiones Lisp eval´ ua expresiones. Una expresi´on es: Un ´atomo
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Expresiones en Lisp
Expresiones Lisp eval´ ua expresiones. Una expresi´on es: Un ´atomo Una lista.
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Tipos b´ asicos de datos ´ Atomos Num´ericos:
Listas
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Tipos b´ asicos de datos ´ Atomos Num´ericos: 7, 12.0, 3.1415
Listas
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
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
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.
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)
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: ()
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)))
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Bucle WAIT-READ-EVAL-PRINT
WAIT Lisp muestra el prompt y espera
>
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)
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 EVAL Lisp eval´ ua la expresi´ on.
>
(+ 3 4)
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 EVAL Lisp eval´ ua la expresi´ on.
>
PRINT Lisp escribe el resultado
>
7
(+ 3 4)
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Evaluaci´ on de ´ atomos
Num´ericos: Devuelven su valor.
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.
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.
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.
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Ejemplos
> 5.6
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Ejemplos
> 5.6 5.6
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Ejemplos
> 5.6 5.6 > :zx
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Ejemplos
> 5.6 5.6 > :zx :ZX
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Ejemplos
> 5.6 5.6 > :zx :ZX > dfg
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>
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Expresiones matem´ aticas
Se utiliza la notaci´on prefija. 4 + 3
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Expresiones matem´ aticas
Se utiliza la notaci´on prefija. 4 + 3
->
(+ 4 3)
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Expresiones matem´ aticas
Se utiliza la notaci´on prefija. 4 + 3 -> 4 + 3 (7 - 6)
(+ 4 3)
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Expresiones matem´ aticas
Se utiliza la notaci´on prefija. 4 + 3 -> 4 + 3 ( 7 - 6 ) ->
(+ 4 3) (+ 4 (* 3 (- 7 6)))
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Expresiones matem´ aticas
Se utiliza la notaci´on prefija. 4 + 3 -> 4 + 3 (7 - 6) ->
(+ 4 3) (+ 4 (* 3 (- 7 6)))
El primer elemento de la lista es la operaci´ on
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Expresiones matem´ aticas
Se utiliza la notaci´on prefija. 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.
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)
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)
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)
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)
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)
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)
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.
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.
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))
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
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)
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
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
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 >
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Referencia b´ asica. SETQ
SETQ Liga un valor a un s´ımbolo.
Ejemplos
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
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)
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)
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
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
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)))
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)))
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)))
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
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Referencia b´ asica. COND
COND Eval´ ua expresiones de manera condicional.
Ejemplos
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
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)))
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)))
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Referencia b´ asica. QUOTE QUOTE Bloquea la evaluaci´ on.
Ejemplos
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Referencia b´ asica. QUOTE QUOTE Bloquea la evaluaci´ on. (quote s´ımbolo) devuelve s´ımbolo
Ejemplos
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
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)
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
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))
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
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
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
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Referencia b´ asica. CONS CONS Constructor de un par ordenado. Puede construir listas.
Ejemplos
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
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)
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)
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 ())
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)
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 ()))
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)
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Referencia b´ asica. LIST
LIST Construye listas de forma m´ as sencilla que CONS.
Ejemplos
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
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)
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)
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’’)
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’’)
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Referencia b´ asica. APPEND APPEND Concatena listas.
Ejemplos
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Referencia b´ asica. APPEND APPEND Concatena listas. (append lista-1 lista-2 lista-3 . . . ) Ejemplos
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))
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)
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’’))
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’’)
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)
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’’)
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
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). (first lista) Ejemplos
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). (first lista) Ejemplos > (setq lista-1 (list 1 2 3))
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). (first lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3)
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). (first lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (first lista-1)
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). (first lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (first lista-1) 1
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). (first lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (first lista-1) 1 > (first (cons 5 7))
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). (first lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (first lista-1) 1 > (first (cons 5 7)) 5
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
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
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))
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)
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)
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)
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))
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
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))
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
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
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
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)
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
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)
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
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))
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
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Referencia b´ asica. DEFUN DEFUN. Sirve para definir una funci´on de usuario y ligarla a un s´ımbolo.
Ejemplo: C´alculo de la hipotenusa
Ejemplos
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Referencia b´ asica. DEFUN DEFUN. Sirve para definir 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
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Referencia b´ asica. DEFUN DEFUN. Sirve para definir 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
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Referencia b´ asica. DEFUN DEFUN. Sirve para definir 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)
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Referencia b´ asica. DEFUN DEFUN. Sirve para definir 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
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)
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
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)
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
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
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
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)
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) #
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) # > #’identidad
Contenidos Objetivos Historia de Lisp Programaci´ on on Resumen
Refe Refere renc ncia ia b´ asic asica. a. Un s´ımb ımbol oloo pu pued edee estar ligado a un valor y una funci´ on. on. > (set (setq q iden identi tida dad d 25) 25) 25 > (def (defun un iden identi tida dad d (a) (a) a) IDENTIDAD > ident identida idad d 25 > (func (functio tion n ident identid idad) ad) # #82ae524> > #’identi #’identidad dad # 4>
Contenidos Objetivos Historia de Lisp Programaci´ on on Resumen
Refe Refere renci ncia a b´ asica asica.. LAMBDA LAMBDA
LAMBDA. Devuelve una funci´on on sin nombre (sin ligarla ligarla a un s´ımbolo).
Ejemplos
Contenidos Objetivos Historia de Lisp Programaci´ on on Resumen
Refe Refere renci ncia a b´ asica asica.. LAMBDA LAMBDA
LAMBDA. Devuelve una funci´on on sin nombre (sin ligarla ligarla a un s´ımbolo). (lambda lista-de-argumentos cuerpo) Ejemplos
Contenidos Objetivos Historia de Lisp Programaci´ on on Resumen
Refe Refere renci ncia a b´ asica asica.. LAMBDA LAMBDA
LAMBDA. Devuelve una funci´on on sin nombre (sin ligarla ligarla a un s´ımbolo). (lambda lista-de-argumentos cuerpo) Ejemplos > ((lambda (a b) (+ a b)) 3 4)
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
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
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
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
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
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)
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)
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)
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)
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
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
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
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)
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
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
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
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
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
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
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))
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)
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)
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
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
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)
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Referencia b´ asica. Otros tipos de datos Strings Secuencia de caracteres alfanum´ericos.
Ejemplo
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
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’’
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’’
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’’)
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’’
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
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’’
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Referencia b´ asica. Entrada READ READ convierte los caracteres de entrada en expresiones de Lisp.
Ejemplo
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
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))
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
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
Contenidos Objetivos Historia de Lisp Programaci´ on on Resumen
Referen Referencia cia b´ asica. asica. Entrada Entr ada READ READ convierte los caracteres de entrada en expresiones de Lisp. (read) Ejemplo > (set setq a (read)) d)) 56 56 > a
Contenidos Objetivos Historia de Lisp Programaci´ on on Resumen
Referen Referencia cia b´ asica. asica. Entrada Entr ada READ READ convierte los caracteres de entrada en expresiones de Lisp. (read) Ejemplo > (set setq a (read)) d)) 56 56 > a 56
Contenidos Objetivos Historia de Lisp Programaci´ on on Resumen
Referen Referencia cia b´ asica. asica. Salida Sali da
PRINT PRINT convierte una expresi´on on de Lisp en una secuencia de caracteres.
Ejemplo
Contenidos Objetivos Historia de Lisp Programaci´ on on Resumen
Referen Referencia cia b´ asica. asica. Salida Sali da
PRINT PRINT convierte una expresi´on on de Lisp en una secuencia de caracteres. (print expresi´on) on) Ejemplo
Contenidos Objetivos Historia de Lisp Programaci´ on on Resumen
Referen Referencia cia b´ asica. asica. Salida Sali da
PRINT PRINT convierte una expresi´on on de Lisp en una secuencia de caracteres. (print expresi´on) on) Ejemplo > (print (list 1 2 3))
Contenidos Objetivos Historia de Lisp Programaci´ on on Resumen
Referen Referencia cia b´ asica. asica. Salida Sali da
PRINT PRINT convierte una expresi´on on de Lisp en una secuencia de caracteres. (print expresi´on) on) Ejemplo > (print (list 1 2 3)) (1 2 3); 3); lo que imprim rime en la consola
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
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Referencia b´ asica. LOAD
LOAD Carga el c´ odigo fuente contenido en un archivo.
Ejemplo
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
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’’)
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
Contenidos Objetivos Historia de Lisp Programaci´ on Resumen
Resumen
Se han mostrado los elementos b´asicos de Lisp, pero . . .
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.
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]