ContenidosObjetivos
Historia de LispProgramacion
Resumen
Programacion basica en Lisp
Pedro J. MoralesDigital Audio & Computer Music Laboratory. UCLM
July 29, 2007
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
1 Objetivos
2 Historia de Lisp
3 Programacion
4 Resumen
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Objetivos
Aproximacion historica.
Programacion basica.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Objetivos
Aproximacion historica.
Programacion basica.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Aproximacion historica
1960. John McCarthy publica un estudio crucial para laprogramacion.
Con unos pocos operadores y notacion para funciones sepuede construir un lenguaje.
Llamo al lenguaje LISP, por “List Processing”
Usaba la lista como estructura para representar tanto datoscomo programas.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Aproximacion historica
1960. John McCarthy publica un estudio crucial para laprogramacion.
Con unos pocos operadores y notacion para funciones sepuede construir un lenguaje.
Llamo al lenguaje LISP, por “List Processing”
Usaba la lista como estructura para representar tanto datoscomo programas.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Aproximacion historica
1960. John McCarthy publica un estudio crucial para laprogramacion.
Con unos pocos operadores y notacion para funciones sepuede construir un lenguaje.
Llamo al lenguaje LISP, por “List Processing”
Usaba la lista como estructura para representar tanto datoscomo programas.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Aproximacion historica
1960. John McCarthy publica un estudio crucial para laprogramacion.
Con unos pocos operadores y notacion para funciones sepuede construir un lenguaje.
Llamo al lenguaje LISP, por “List Processing”
Usaba la lista como estructura para representar tanto datoscomo programas.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Aproximacion historica
El descubrimiento de McCarthy es un hito en la historia de laprogramacion. . .
. . . tambien es un modelo que marca la tendencia de loslenguajes actuales.
Hay dos modelos: C y Lisp
Los lenguajes disenados en los ultimos 20 anos se basan en elmodelo de C al que anaden partes de Lisp.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Aproximacion historica
El descubrimiento de McCarthy es un hito en la historia de laprogramacion. . .
. . . tambien es un modelo que marca la tendencia de loslenguajes actuales.
Hay dos modelos: C y Lisp
Los lenguajes disenados en los ultimos 20 anos se basan en elmodelo de C al que anaden partes de Lisp.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Aproximacion historica
El descubrimiento de McCarthy es un hito en la historia de laprogramacion. . .
. . . tambien es un modelo que marca la tendencia de loslenguajes actuales.
Hay dos modelos: C y Lisp
Los lenguajes disenados en los ultimos 20 anos se basan en elmodelo de C al que anaden partes de Lisp.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Aproximacion historica
El descubrimiento de McCarthy es un hito en la historia de laprogramacion. . .
. . . tambien es un modelo que marca la tendencia de loslenguajes actuales.
Hay dos modelos: C y Lisp
Los lenguajes disenados en los ultimos 20 anos se basan en elmodelo de C al que anaden partes de Lisp.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Lisp es un lenguaje configurable
Lisp es el lenguaje mas antiguo que se mantiene activo.
Lisp se puede programar en Lisp.
Lisp se adapta a cualquier paradigma de programacion.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Lisp es un lenguaje configurable
Lisp es el lenguaje mas antiguo que se mantiene activo.
Lisp se puede programar en Lisp.
Lisp se adapta a cualquier paradigma de programacion.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Lisp es un lenguaje configurable
Lisp es el lenguaje mas antiguo que se mantiene activo.
Lisp se puede programar en Lisp.
Lisp se adapta a cualquier paradigma de programacion.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Aplicaciones
Ademas de las implementaciones de Lisp como lenguaje, lasversiones mas pequenas
SchemeSubconjuntos de Common Lisp: XLisp, elisp.
Se empotran en aplicaciones especıficas como lenguajes descripts
Emacs, editor de texto, elisp.GIMP, editor de graficos, Scheme.Audacity, editor de audio, Nyquist (XLisp).LilyPond, partituras musicales, Scheme.AutoCAD, diseno tecnico, AutoLisp (XLisp).
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Aplicaciones
Ademas de las implementaciones de Lisp como lenguaje, lasversiones mas pequenas
Scheme
Subconjuntos de Common Lisp: XLisp, elisp.
Se empotran en aplicaciones especıficas como lenguajes descripts
Emacs, editor de texto, elisp.GIMP, editor de graficos, Scheme.Audacity, editor de audio, Nyquist (XLisp).LilyPond, partituras musicales, Scheme.AutoCAD, diseno tecnico, AutoLisp (XLisp).
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Aplicaciones
Ademas de las implementaciones de Lisp como lenguaje, lasversiones mas pequenas
SchemeSubconjuntos de Common Lisp: XLisp, elisp.
Se empotran en aplicaciones especıficas como lenguajes descripts
Emacs, editor de texto, elisp.GIMP, editor de graficos, Scheme.Audacity, editor de audio, Nyquist (XLisp).LilyPond, partituras musicales, Scheme.AutoCAD, diseno tecnico, AutoLisp (XLisp).
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Aplicaciones
Ademas de las implementaciones de Lisp como lenguaje, lasversiones mas pequenas
SchemeSubconjuntos de Common Lisp: XLisp, elisp.
Se empotran en aplicaciones especıficas como lenguajes descripts
Emacs, editor de texto, elisp.GIMP, editor de graficos, Scheme.Audacity, editor de audio, Nyquist (XLisp).LilyPond, partituras musicales, Scheme.AutoCAD, diseno tecnico, AutoLisp (XLisp).
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Aplicaciones
Ademas de las implementaciones de Lisp como lenguaje, lasversiones mas pequenas
SchemeSubconjuntos de Common Lisp: XLisp, elisp.
Se empotran en aplicaciones especıficas como lenguajes descripts
Emacs, editor de texto, elisp.
GIMP, editor de graficos, Scheme.Audacity, editor de audio, Nyquist (XLisp).LilyPond, partituras musicales, Scheme.AutoCAD, diseno tecnico, AutoLisp (XLisp).
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Aplicaciones
Ademas de las implementaciones de Lisp como lenguaje, lasversiones mas pequenas
SchemeSubconjuntos de Common Lisp: XLisp, elisp.
Se empotran en aplicaciones especıficas como lenguajes descripts
Emacs, editor de texto, elisp.GIMP, editor de graficos, Scheme.
Audacity, editor de audio, Nyquist (XLisp).LilyPond, partituras musicales, Scheme.AutoCAD, diseno tecnico, AutoLisp (XLisp).
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Aplicaciones
Ademas de las implementaciones de Lisp como lenguaje, lasversiones mas pequenas
SchemeSubconjuntos de Common Lisp: XLisp, elisp.
Se empotran en aplicaciones especıficas como lenguajes descripts
Emacs, editor de texto, elisp.GIMP, editor de graficos, Scheme.Audacity, editor de audio, Nyquist (XLisp).
LilyPond, partituras musicales, Scheme.AutoCAD, diseno tecnico, AutoLisp (XLisp).
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Aplicaciones
Ademas de las implementaciones de Lisp como lenguaje, lasversiones mas pequenas
SchemeSubconjuntos de Common Lisp: XLisp, elisp.
Se empotran en aplicaciones especıficas como lenguajes descripts
Emacs, editor de texto, elisp.GIMP, editor de graficos, Scheme.Audacity, editor de audio, Nyquist (XLisp).LilyPond, partituras musicales, Scheme.
AutoCAD, diseno tecnico, AutoLisp (XLisp).
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Aplicaciones
Ademas de las implementaciones de Lisp como lenguaje, lasversiones mas pequenas
SchemeSubconjuntos de Common Lisp: XLisp, elisp.
Se empotran en aplicaciones especıficas como lenguajes descripts
Emacs, editor de texto, elisp.GIMP, editor de graficos, Scheme.Audacity, editor de audio, Nyquist (XLisp).LilyPond, partituras musicales, Scheme.AutoCAD, diseno tecnico, AutoLisp (XLisp).
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Expresiones en Lisp
Expresiones
Lisp evalua expresiones.
Una expresion es:
Un atomoUna lista.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Expresiones en Lisp
Expresiones
Lisp evalua expresiones.
Una expresion es:
Un atomoUna lista.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Expresiones en Lisp
Expresiones
Lisp evalua expresiones.
Una expresion es:
Un atomo
Una lista.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Expresiones en Lisp
Expresiones
Lisp evalua expresiones.
Una expresion es:
Un atomoUna lista.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Tipos basicos de datos
Atomos
Numericos:
7, 12.0, 3.1415
Sımbolo: Secuencia de caracteres alfanumericos
a, nota, c4,mesa
Listas
Se escriben entre parentesis.
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Tipos basicos de datos
Atomos
Numericos: 7, 12.0, 3.1415
Sımbolo: Secuencia de caracteres alfanumericos
a, nota, c4,mesa
Listas
Se escriben entre parentesis.
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Tipos basicos de datos
Atomos
Numericos: 7, 12.0, 3.1415
Sımbolo: Secuencia de caracteres alfanumericos
a, nota, c4,mesa
Listas
Se escriben entre parentesis.
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Tipos basicos de datos
Atomos
Numericos: 7, 12.0, 3.1415
Sımbolo: Secuencia de caracteres alfanumericos a, nota, c4,mesa
Listas
Se escriben entre parentesis.
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Tipos basicos de datos
Atomos
Numericos: 7, 12.0, 3.1415
Sımbolo: Secuencia de caracteres alfanumericos a, nota, c4,mesa
Listas
Se escriben entre parentesis.
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Tipos basicos de datos
Atomos
Numericos: 7, 12.0, 3.1415
Sımbolo: Secuencia de caracteres alfanumericos a, nota, c4,mesa
Listas
Se escriben entre parentesis.
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Tipos basicos de datos
Atomos
Numericos: 7, 12.0, 3.1415
Sımbolo: Secuencia de caracteres alfanumericos a, nota, c4,mesa
Listas
Se escriben entre parentesis.
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Tipos basicos de datos
Atomos
Numericos: 7, 12.0, 3.1415
Sımbolo: Secuencia de caracteres alfanumericos a, nota, c4,mesa
Listas
Se escriben entre parentesis.
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Bucle WAIT-READ-EVAL-PRINT
WAIT Lisp muestra el prompt y espera >
READ El usuario escribe una expresion > (+ 3 4)
EVAL Lisp evalua la expresion.
PRINT Lisp escribe el resultado > 7
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Bucle WAIT-READ-EVAL-PRINT
WAIT Lisp muestra el prompt y espera >
READ El usuario escribe una expresion > (+ 3 4)
EVAL Lisp evalua la expresion.
PRINT Lisp escribe el resultado > 7
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Bucle WAIT-READ-EVAL-PRINT
WAIT Lisp muestra el prompt y espera >
READ El usuario escribe una expresion > (+ 3 4)
EVAL Lisp evalua la expresion.
PRINT Lisp escribe el resultado > 7
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Bucle WAIT-READ-EVAL-PRINT
WAIT Lisp muestra el prompt y espera >
READ El usuario escribe una expresion > (+ 3 4)
EVAL Lisp evalua la expresion.
PRINT Lisp escribe el resultado > 7
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Evaluacion de atomos
Numericos: Devuelven su valor.
Simbolicos: Si el nombre comienza por : devuelve el mismonombre.
Si tiene ligado un valor devuelve ese valor.
Si no tiene valor ligado, devuelve un error.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Evaluacion de atomos
Numericos: Devuelven su valor.
Simbolicos: Si el nombre comienza por : devuelve el mismonombre.
Si tiene ligado un valor devuelve ese valor.
Si no tiene valor ligado, devuelve un error.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Evaluacion de atomos
Numericos: Devuelven su valor.
Simbolicos: Si el nombre comienza por : devuelve el mismonombre.
Si tiene ligado un valor devuelve ese valor.
Si no tiene valor ligado, devuelve un error.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Evaluacion de atomos
Numericos: Devuelven su valor.
Simbolicos: Si el nombre comienza por : devuelve el mismonombre.
Si tiene ligado un valor devuelve ese valor.
Si no tiene valor ligado, devuelve un error.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Ejemplos
> 5.6
5.6> :zx:ZX> dfgerror: unbound variable - DFGif continued: try evaluating symbol again1>
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Ejemplos
> 5.65.6
> :zx:ZX> dfgerror: unbound variable - DFGif continued: try evaluating symbol again1>
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Ejemplos
> 5.65.6> :zx
:ZX> dfgerror: unbound variable - DFGif continued: try evaluating symbol again1>
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Ejemplos
> 5.65.6> :zx:ZX
> dfgerror: unbound variable - DFGif continued: try evaluating symbol again1>
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Ejemplos
> 5.65.6> :zx:ZX> dfg
error: unbound variable - DFGif continued: try evaluating symbol again1>
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Ejemplos
> 5.65.6> :zx:ZX> dfgerror: unbound variable - DFGif continued: try evaluating symbol again1>
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Expresiones matematicas
Se utiliza la notacion prefija.
4 + 3
-> (+ 4 3)4 + 3 (7 - 6) -> (+ 4 (* 3 (- 7 6)))
El primer elemento de la lista es la operacionLos demas elementos son los operandos.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Expresiones matematicas
Se utiliza la notacion prefija.
4 + 3 -> (+ 4 3)
4 + 3 (7 - 6) -> (+ 4 (* 3 (- 7 6)))
El primer elemento de la lista es la operacionLos demas elementos son los operandos.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Expresiones matematicas
Se utiliza la notacion prefija.
4 + 3 -> (+ 4 3)4 + 3 (7 - 6)
-> (+ 4 (* 3 (- 7 6)))
El primer elemento de la lista es la operacionLos demas elementos son los operandos.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Expresiones matematicas
Se utiliza la notacion prefija.
4 + 3 -> (+ 4 3)4 + 3 (7 - 6) -> (+ 4 (* 3 (- 7 6)))
El primer elemento de la lista es la operacionLos demas elementos son los operandos.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Expresiones matematicas
Se utiliza la notacion prefija.
4 + 3 -> (+ 4 3)4 + 3 (7 - 6) -> (+ 4 (* 3 (- 7 6)))
El primer elemento de la lista es la operacion
Los demas elementos son los operandos.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Expresiones matematicas
Se utiliza la notacion prefija.
4 + 3 -> (+ 4 3)4 + 3 (7 - 6) -> (+ 4 (* 3 (- 7 6)))
El primer elemento de la lista es la operacionLos demas elementos son los operandos.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Orden normal de evaluacion
La evaluacion empieza por las listas mas internas de la expresion.
(+ (* 3 (- 7 6)) 4)
(+ (* 3 1) 4)(+ (* 3 1) 4)(+ 3 4)(+ 3 4)7
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Orden normal de evaluacion
La evaluacion empieza por las listas mas internas de la expresion.
(+ (* 3 (- 7 6)) 4)(+ (* 3 1) 4)
(+ (* 3 1) 4)(+ 3 4)(+ 3 4)7
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Orden normal de evaluacion
La evaluacion empieza por las listas mas internas de la expresion.
(+ (* 3 (- 7 6)) 4)(+ (* 3 1) 4)(+ (* 3 1) 4)
(+ 3 4)(+ 3 4)7
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Orden normal de evaluacion
La evaluacion empieza por las listas mas internas de la expresion.
(+ (* 3 (- 7 6)) 4)(+ (* 3 1) 4)(+ (* 3 1) 4)(+ 3 4)
(+ 3 4)7
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Orden normal de evaluacion
La evaluacion empieza por las listas mas internas de la expresion.
(+ (* 3 (- 7 6)) 4)(+ (* 3 1) 4)(+ (* 3 1) 4)(+ 3 4)(+ 3 4)
7
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Orden normal de evaluacion
La evaluacion empieza por las listas mas internas de la expresion.
(+ (* 3 (- 7 6)) 4)(+ (* 3 1) 4)(+ (* 3 1) 4)(+ 3 4)(+ 3 4)7
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Evaluacion n de funciones
El primer elemento de la lista es una funcion
Se evalua el resto de los elementos.
Se aplican como argumentos a la funcion.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Evaluacion n de funciones
El primer elemento de la lista es una funcion
Se evalua el resto de los elementos.
Se aplican como argumentos a la funcion.
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Evaluacion de formas especiales
Las formas especiales evaluan sus argumentos en distinto ordenque 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Evaluacion de formas especiales
Las formas especiales evaluan sus argumentos en distinto ordenque 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Evaluacion de formas especiales
Las formas especiales evaluan sus argumentos en distinto ordenque 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Evaluacion de formas especiales
Las formas especiales evaluan sus argumentos en distinto ordenque 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Evaluacion de formas especiales
Las formas especiales evaluan sus argumentos en distinto ordenque 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Evaluacion de formas especiales
Las formas especiales evaluan sus argumentos en distinto ordenque 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. SETQ
SETQ
Liga un valor a un sımbolo.
(setq sımbolo valor)
Ejemplos
> (setq x 25)> (setq do-central :c4)
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. SETQ
SETQ
Liga un valor a un sımbolo.
(setq sımbolo valor)
Ejemplos
> (setq x 25)> (setq do-central :c4)
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. SETQ
SETQ
Liga un valor a un sımbolo.
(setq sımbolo valor)
Ejemplos
> (setq x 25)
> (setq do-central :c4)
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. SETQ
SETQ
Liga un valor a un sımbolo.
(setq sımbolo valor)
Ejemplos
> (setq x 25)> (setq do-central :c4)
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LET
LET
Liga valores locales a uno, varios o ningun sımbolo.
(let (ligaduras) expresiones)
Ejemplos
> (let ((a 2) (b 3) (c 4)) (+ a (* 2 b) (/ c 2)))10> aerror: unbound variable - A
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LET
LET
Liga valores locales a uno, varios o ningun sımbolo.
(let (ligaduras) expresiones)
Ejemplos
> (let ((a 2) (b 3) (c 4)) (+ a (* 2 b) (/ c 2)))10> aerror: unbound variable - A
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LET
LET
Liga valores locales a uno, varios o ningun sımbolo.
(let (ligaduras) expresiones)
Ejemplos
> (let ((a 2) (b 3) (c 4)) (+ a (* 2 b) (/ c 2)))
10> aerror: unbound variable - A
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LET
LET
Liga valores locales a uno, varios o ningun sımbolo.
(let (ligaduras) expresiones)
Ejemplos
> (let ((a 2) (b 3) (c 4)) (+ a (* 2 b) (/ c 2)))10
> aerror: unbound variable - A
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LET
LET
Liga valores locales a uno, varios o ningun 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LET
LET
Liga valores locales a uno, varios o ningun sımbolo.
(let (ligaduras) expresiones)
Ejemplos
> (let ((a 2) (b 3) (c 4)) (+ a (* 2 b) (/ c 2)))10> aerror: unbound variable - A
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. COND
COND
Evalua expresiones de manera condicional.
(cond (expresion-logica expresiones*)*)
Ejemplos
> (let ((a 1) (b 2) (c 1) (d 1))(cond ((eql a b) 1)
((eql a c) "Primera expresion" 2)((eql a d) 3)))
2
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. COND
COND
Evalua expresiones de manera condicional.
(cond (expresion-logica expresiones*)*)
Ejemplos
> (let ((a 1) (b 2) (c 1) (d 1))(cond ((eql a b) 1)
((eql a c) "Primera expresion" 2)((eql a d) 3)))
2
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. COND
COND
Evalua expresiones de manera condicional.
(cond (expresion-logica expresiones*)*)
Ejemplos
> (let ((a 1) (b 2) (c 1) (d 1))(cond ((eql a b) 1)
((eql a c) "Primera expresion" 2)((eql a d) 3)))
2
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. COND
COND
Evalua expresiones de manera condicional.
(cond (expresion-logica expresiones*)*)
Ejemplos
> (let ((a 1) (b 2) (c 1) (d 1))(cond ((eql a b) 1)
((eql a c) "Primera expresion" 2)((eql a d) 3)))
2
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. QUOTE
QUOTE
Bloquea la evaluacion.
(quote sımbolo) devuelve sımbolo
Notacion equivalente: ’sımbolo
Ejemplos
> (quote a)a> (setq a (quote b))b> ab
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. QUOTE
QUOTE
Bloquea la evaluacion.
(quote sımbolo) devuelve sımbolo
Notacion equivalente: ’sımbolo
Ejemplos
> (quote a)a> (setq a (quote b))b> ab
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. QUOTE
QUOTE
Bloquea la evaluacion.
(quote sımbolo) devuelve sımbolo
Notacion equivalente: ’sımbolo
Ejemplos
> (quote a)a> (setq a (quote b))b> ab
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. QUOTE
QUOTE
Bloquea la evaluacion.
(quote sımbolo) devuelve sımbolo
Notacion equivalente: ’sımbolo
Ejemplos
> (quote a)
a> (setq a (quote b))b> ab
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. QUOTE
QUOTE
Bloquea la evaluacion.
(quote sımbolo) devuelve sımbolo
Notacion equivalente: ’sımbolo
Ejemplos
> (quote a)a
> (setq a (quote b))b> ab
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. QUOTE
QUOTE
Bloquea la evaluacion.
(quote sımbolo) devuelve sımbolo
Notacion equivalente: ’sımbolo
Ejemplos
> (quote a)a> (setq a (quote b))
b> ab
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. QUOTE
QUOTE
Bloquea la evaluacion.
(quote sımbolo) devuelve sımbolo
Notacion equivalente: ’sımbolo
Ejemplos
> (quote a)a> (setq a (quote b))b
> ab
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. QUOTE
QUOTE
Bloquea la evaluacion.
(quote sımbolo) devuelve sımbolo
Notacion equivalente: ’sımbolo
Ejemplos
> (quote a)a> (setq a (quote b))b> a
b
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. QUOTE
QUOTE
Bloquea la evaluacion.
(quote sımbolo) devuelve sımbolo
Notacion equivalente: ’sımbolo
Ejemplos
> (quote a)a> (setq a (quote b))b> ab
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LIST
LIST
Construye listas de forma mas 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LIST
LIST
Construye listas de forma mas 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LIST
LIST
Construye listas de forma mas 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LIST
LIST
Construye listas de forma mas 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LIST
LIST
Construye listas de forma mas 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LIST
LIST
Construye listas de forma mas 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. 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
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. REST
REST. Equivalente a CDR.
Selecciona el segundo elemento de un par ordenado (o la listaque 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. REST
REST. Equivalente a CDR.
Selecciona el segundo elemento de un par ordenado (o la listaque 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. REST
REST. Equivalente a CDR.
Selecciona el segundo elemento de un par ordenado (o la listaque 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. REST
REST. Equivalente a CDR.
Selecciona el segundo elemento de un par ordenado (o la listaque 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. REST
REST. Equivalente a CDR.
Selecciona el segundo elemento de un par ordenado (o la listaque 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. REST
REST. Equivalente a CDR.
Selecciona el segundo elemento de un par ordenado (o la listaque 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. REST
REST. Equivalente a CDR.
Selecciona el segundo elemento de un par ordenado (o la listaque 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. REST
REST. Equivalente a CDR.
Selecciona el segundo elemento de un par ordenado (o la listaque 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. REST
REST. Equivalente a CDR.
Selecciona el segundo elemento de un par ordenado (o la listaque 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. REST
REST. Equivalente a CDR.
Selecciona el segundo elemento de un par ordenado (o la listaque 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. EQ
EQ.
Detecta si el valor de un sımbolo es identico 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. EQ
EQ.
Detecta si el valor de un sımbolo es identico 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. EQ
EQ.
Detecta si el valor de un sımbolo es identico 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. EQ
EQ.
Detecta si el valor de un sımbolo es identico 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. EQ
EQ.
Detecta si el valor de un sımbolo es identico 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. EQ
EQ.
Detecta si el valor de un sımbolo es identico 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. EQ
EQ.
Detecta si el valor de un sımbolo es identico 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. EQ
EQ.
Detecta si el valor de un sımbolo es identico 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. DEFUN
DEFUN.
Sirve para definir una funcion de usuario y ligarla a unsımbolo.
(defun nombre-funcion lista-de-argumentos cuerpo)
Ejemplo: Calculo de la hipotenusa
(defun pitagoras (a b)(sqrt (+ (expt a 2.0) (expt b 2.0))))
Ejemplos
> (pitagoras 3 4)5
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. DEFUN
DEFUN.
Sirve para definir una funcion de usuario y ligarla a unsımbolo.
(defun nombre-funcion lista-de-argumentos cuerpo)
Ejemplo: Calculo de la hipotenusa
(defun pitagoras (a b)(sqrt (+ (expt a 2.0) (expt b 2.0))))
Ejemplos
> (pitagoras 3 4)5
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. DEFUN
DEFUN.
Sirve para definir una funcion de usuario y ligarla a unsımbolo.
(defun nombre-funcion lista-de-argumentos cuerpo)
Ejemplo: Calculo de la hipotenusa
(defun pitagoras (a b)(sqrt (+ (expt a 2.0) (expt b 2.0))))
Ejemplos
> (pitagoras 3 4)5
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. DEFUN
DEFUN.
Sirve para definir una funcion de usuario y ligarla a unsımbolo.
(defun nombre-funcion lista-de-argumentos cuerpo)
Ejemplo: Calculo de la hipotenusa
(defun pitagoras (a b)(sqrt (+ (expt a 2.0) (expt b 2.0))))
Ejemplos
> (pitagoras 3 4)
5
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. DEFUN
DEFUN.
Sirve para definir una funcion de usuario y ligarla a unsımbolo.
(defun nombre-funcion lista-de-argumentos cuerpo)
Ejemplo: Calculo de la hipotenusa
(defun pitagoras (a b)(sqrt (+ (expt a 2.0) (expt b 2.0))))
Ejemplos
> (pitagoras 3 4)5
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica.
Un sımbolo puede estar ligado a un valor y una funcion.
> (setq identidad 25)
25> (defun identidad (a) a)IDENTIDAD> identidad25> (function identidad)#<Closure-IDENTIDAD: #82ae524>> #’identidad#<Closure-IDENTIDAD: #82ae524>
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica.
Un sımbolo puede estar ligado a un valor y una funcion.
> (setq identidad 25)25
> (defun identidad (a) a)IDENTIDAD> identidad25> (function identidad)#<Closure-IDENTIDAD: #82ae524>> #’identidad#<Closure-IDENTIDAD: #82ae524>
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica.
Un sımbolo puede estar ligado a un valor y una funcion.
> (setq identidad 25)25> (defun identidad (a) a)
IDENTIDAD> identidad25> (function identidad)#<Closure-IDENTIDAD: #82ae524>> #’identidad#<Closure-IDENTIDAD: #82ae524>
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica.
Un sımbolo puede estar ligado a un valor y una funcion.
> (setq identidad 25)25> (defun identidad (a) a)IDENTIDAD
> identidad25> (function identidad)#<Closure-IDENTIDAD: #82ae524>> #’identidad#<Closure-IDENTIDAD: #82ae524>
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica.
Un sımbolo puede estar ligado a un valor y una funcion.
> (setq identidad 25)25> (defun identidad (a) a)IDENTIDAD> identidad
25> (function identidad)#<Closure-IDENTIDAD: #82ae524>> #’identidad#<Closure-IDENTIDAD: #82ae524>
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica.
Un sımbolo puede estar ligado a un valor y una funcion.
> (setq identidad 25)25> (defun identidad (a) a)IDENTIDAD> identidad25
> (function identidad)#<Closure-IDENTIDAD: #82ae524>> #’identidad#<Closure-IDENTIDAD: #82ae524>
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica.
Un sımbolo puede estar ligado a un valor y una funcion.
> (setq identidad 25)25> (defun identidad (a) a)IDENTIDAD> identidad25> (function identidad)
#<Closure-IDENTIDAD: #82ae524>> #’identidad#<Closure-IDENTIDAD: #82ae524>
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica.
Un sımbolo puede estar ligado a un valor y una funcion.
> (setq identidad 25)25> (defun identidad (a) a)IDENTIDAD> identidad25> (function identidad)#<Closure-IDENTIDAD: #82ae524>
> #’identidad#<Closure-IDENTIDAD: #82ae524>
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica.
Un sımbolo puede estar ligado a un valor y una funcion.
> (setq identidad 25)25> (defun identidad (a) a)IDENTIDAD> identidad25> (function identidad)#<Closure-IDENTIDAD: #82ae524>> #’identidad
#<Closure-IDENTIDAD: #82ae524>
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica.
Un sımbolo puede estar ligado a un valor y una funcion.
> (setq identidad 25)25> (defun identidad (a) a)IDENTIDAD> identidad25> (function identidad)#<Closure-IDENTIDAD: #82ae524>> #’identidad#<Closure-IDENTIDAD: #82ae524>
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LAMBDA
LAMBDA.
Devuelve una funcion sin nombre (sin ligarla a un sımbolo).
(lambda lista-de-argumentos cuerpo)
Ejemplos
> ((lambda (a b) (+ a b)) 3 4)7
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LAMBDA
LAMBDA.
Devuelve una funcion sin nombre (sin ligarla a un sımbolo).
(lambda lista-de-argumentos cuerpo)
Ejemplos
> ((lambda (a b) (+ a b)) 3 4)7
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LAMBDA
LAMBDA.
Devuelve una funcion sin nombre (sin ligarla a un sımbolo).
(lambda lista-de-argumentos cuerpo)
Ejemplos
> ((lambda (a b) (+ a b)) 3 4)
7
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LAMBDA
LAMBDA.
Devuelve una funcion sin nombre (sin ligarla a un sımbolo).
(lambda lista-de-argumentos cuerpo)
Ejemplos
> ((lambda (a b) (+ a b)) 3 4)7
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. BACKQUOTE
BACKQUOTE. Abreviatura: ‘
Al aplicarlo a una lista realiza una evaluacion selectiva.
Funciona como una plantilla donde solo se evaluan lasexpresiones 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. BACKQUOTE
BACKQUOTE. Abreviatura: ‘
Al aplicarlo a una lista realiza una evaluacion selectiva.
Funciona como una plantilla donde solo se evaluan lasexpresiones 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. BACKQUOTE
BACKQUOTE. Abreviatura: ‘
Al aplicarlo a una lista realiza una evaluacion selectiva.
Funciona como una plantilla donde solo se evaluan lasexpresiones 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. BACKQUOTE
BACKQUOTE. Abreviatura: ‘
Al aplicarlo a una lista realiza una evaluacion selectiva.
Funciona como una plantilla donde solo se evaluan lasexpresiones 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. BACKQUOTE
BACKQUOTE. Abreviatura: ‘
Al aplicarlo a una lista realiza una evaluacion selectiva.
Funciona como una plantilla donde solo se evaluan lasexpresiones 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. BACKQUOTE
BACKQUOTE. Abreviatura: ‘
Al aplicarlo a una lista realiza una evaluacion selectiva.
Funciona como una plantilla donde solo se evaluan lasexpresiones 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. BACKQUOTE
BACKQUOTE. Abreviatura: ‘
Al aplicarlo a una lista realiza una evaluacion selectiva.
Funciona como una plantilla donde solo se evaluan lasexpresiones 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. BACKQUOTE
BACKQUOTE. Abreviatura: ‘
Al aplicarlo a una lista realiza una evaluacion selectiva.
Funciona como una plantilla donde solo se evaluan lasexpresiones 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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. DEFMACRO
DEFMACRO.
Crea una expresion y despues la evalua.
(defmacro nombre-macro lista-de-argumentos cuerpo)
Ejemplo
(defmacro mi-setq (plaza valor)‘(setq ,plaza ’,valor))
Ejemplos
> (mi-setq a b)B> aB
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. DEFMACRO
DEFMACRO.
Crea una expresion y despues la evalua.
(defmacro nombre-macro lista-de-argumentos cuerpo)
Ejemplo
(defmacro mi-setq (plaza valor)‘(setq ,plaza ’,valor))
Ejemplos
> (mi-setq a b)B> aB
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. DEFMACRO
DEFMACRO.
Crea una expresion y despues la evalua.
(defmacro nombre-macro lista-de-argumentos cuerpo)
Ejemplo
(defmacro mi-setq (plaza valor)‘(setq ,plaza ’,valor))
Ejemplos
> (mi-setq a b)B> aB
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. DEFMACRO
DEFMACRO.
Crea una expresion y despues la evalua.
(defmacro nombre-macro lista-de-argumentos cuerpo)
Ejemplo
(defmacro mi-setq (plaza valor)‘(setq ,plaza ’,valor))
Ejemplos
> (mi-setq a b)
B> aB
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. DEFMACRO
DEFMACRO.
Crea una expresion y despues la evalua.
(defmacro nombre-macro lista-de-argumentos cuerpo)
Ejemplo
(defmacro mi-setq (plaza valor)‘(setq ,plaza ’,valor))
Ejemplos
> (mi-setq a b)B
> aB
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. DEFMACRO
DEFMACRO.
Crea una expresion y despues la evalua.
(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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. DEFMACRO
DEFMACRO.
Crea una expresion y despues la evalua.
(defmacro nombre-macro lista-de-argumentos cuerpo)
Ejemplo
(defmacro mi-setq (plaza valor)‘(setq ,plaza ’,valor))
Ejemplos
> (mi-setq a b)B> aB
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Otros tipos de datos
Array
Coleccion de datos a los que se accede mediante un ındicenumerico.
Creacion: (make-array tamano)
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Otros tipos de datos
Array
Coleccion de datos a los que se accede mediante un ındicenumerico.
Creacion: (make-array tamano)
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Otros tipos de datos
Array
Coleccion de datos a los que se accede mediante un ındicenumerico.
Creacion: (make-array tamano)
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Otros tipos de datos
Array
Coleccion de datos a los que se accede mediante un ındicenumerico.
Creacion: (make-array tamano)
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Otros tipos de datos
Array
Coleccion de datos a los que se accede mediante un ındicenumerico.
Creacion: (make-array tamano)
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Otros tipos de datos
Array
Coleccion de datos a los que se accede mediante un ındicenumerico.
Creacion: (make-array tamano)
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Otros tipos de datos
Array
Coleccion de datos a los que se accede mediante un ındicenumerico.
Creacion: (make-array tamano)
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Otros tipos de datos
Array
Coleccion de datos a los que se accede mediante un ındicenumerico.
Creacion: (make-array tamano)
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Otros tipos de datos
Array
Coleccion de datos a los que se accede mediante un ındicenumerico.
Creacion: (make-array tamano)
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 Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Otros tipos de datos
Strings
Secuencia de caracteres alfanumericos.
Se autoevaluan.
Ejemplo
> ‘‘mi-cadena’’‘‘mi-cadena’’> (setq mi-string ‘‘mi-cadena-2’’)‘‘mi-cadena-2’’> mi-string‘‘mi-cadena-2’’
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Otros tipos de datos
Strings
Secuencia de caracteres alfanumericos.
Se autoevaluan.
Ejemplo
> ‘‘mi-cadena’’‘‘mi-cadena’’> (setq mi-string ‘‘mi-cadena-2’’)‘‘mi-cadena-2’’> mi-string‘‘mi-cadena-2’’
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Otros tipos de datos
Strings
Secuencia de caracteres alfanumericos.
Se autoevaluan.
Ejemplo
> ‘‘mi-cadena’’
‘‘mi-cadena’’> (setq mi-string ‘‘mi-cadena-2’’)‘‘mi-cadena-2’’> mi-string‘‘mi-cadena-2’’
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Otros tipos de datos
Strings
Secuencia de caracteres alfanumericos.
Se autoevaluan.
Ejemplo
> ‘‘mi-cadena’’‘‘mi-cadena’’
> (setq mi-string ‘‘mi-cadena-2’’)‘‘mi-cadena-2’’> mi-string‘‘mi-cadena-2’’
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Otros tipos de datos
Strings
Secuencia de caracteres alfanumericos.
Se autoevaluan.
Ejemplo
> ‘‘mi-cadena’’‘‘mi-cadena’’> (setq mi-string ‘‘mi-cadena-2’’)
‘‘mi-cadena-2’’> mi-string‘‘mi-cadena-2’’
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Otros tipos de datos
Strings
Secuencia de caracteres alfanumericos.
Se autoevaluan.
Ejemplo
> ‘‘mi-cadena’’‘‘mi-cadena’’> (setq mi-string ‘‘mi-cadena-2’’)‘‘mi-cadena-2’’
> mi-string‘‘mi-cadena-2’’
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Otros tipos de datos
Strings
Secuencia de caracteres alfanumericos.
Se autoevaluan.
Ejemplo
> ‘‘mi-cadena’’‘‘mi-cadena’’> (setq mi-string ‘‘mi-cadena-2’’)‘‘mi-cadena-2’’> mi-string
‘‘mi-cadena-2’’
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Otros tipos de datos
Strings
Secuencia de caracteres alfanumericos.
Se autoevaluan.
Ejemplo
> ‘‘mi-cadena’’‘‘mi-cadena’’> (setq mi-string ‘‘mi-cadena-2’’)‘‘mi-cadena-2’’> mi-string‘‘mi-cadena-2’’
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Entrada
READ
READ convierte los caracteres de entrada en expresiones deLisp.
(read)
Ejemplo
> (setq a (read))5656> a56
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Entrada
READ
READ convierte los caracteres de entrada en expresiones deLisp.
(read)
Ejemplo
> (setq a (read))5656> a56
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Entrada
READ
READ convierte los caracteres de entrada en expresiones deLisp.
(read)
Ejemplo
> (setq a (read))
5656> a56
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Entrada
READ
READ convierte los caracteres de entrada en expresiones deLisp.
(read)
Ejemplo
> (setq a (read))56
56> a56
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Entrada
READ
READ convierte los caracteres de entrada en expresiones deLisp.
(read)
Ejemplo
> (setq a (read))5656
> a56
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Entrada
READ
READ convierte los caracteres de entrada en expresiones deLisp.
(read)
Ejemplo
> (setq a (read))5656> a
56
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Entrada
READ
READ convierte los caracteres de entrada en expresiones deLisp.
(read)
Ejemplo
> (setq a (read))5656> a56
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Salida
PRINT convierte una expresion de Lisp en una secuencia decaracteres.
(print expresion)
Ejemplo
> (print (list 1 2 3))(1 2 3); lo que imprime en la consola(1 2 3); lo que devuelve
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Salida
PRINT convierte una expresion de Lisp en una secuencia decaracteres.
(print expresion)
Ejemplo
> (print (list 1 2 3))(1 2 3); lo que imprime en la consola(1 2 3); lo que devuelve
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Salida
PRINT convierte una expresion de Lisp en una secuencia decaracteres.
(print expresion)
Ejemplo
> (print (list 1 2 3))
(1 2 3); lo que imprime en la consola(1 2 3); lo que devuelve
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Salida
PRINT convierte una expresion de Lisp en una secuencia decaracteres.
(print expresion)
Ejemplo
> (print (list 1 2 3))(1 2 3); lo que imprime en la consola
(1 2 3); lo que devuelve
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. Salida
PRINT convierte una expresion de Lisp en una secuencia decaracteres.
(print expresion)
Ejemplo
> (print (list 1 2 3))(1 2 3); lo que imprime en la consola(1 2 3); lo que devuelve
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LOAD
LOAD
Carga el codigo fuente contenido en un archivo.
(load path-y-nombre-archivo) ; asume la extension .lsp
Ejemplo
> (load ‘‘mifichero’’)T ; T si lo carga, NIL si no lo carga
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LOAD
LOAD
Carga el codigo fuente contenido en un archivo.
(load path-y-nombre-archivo) ; asume la extension .lsp
Ejemplo
> (load ‘‘mifichero’’)T ; T si lo carga, NIL si no lo carga
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LOAD
LOAD
Carga el codigo fuente contenido en un archivo.
(load path-y-nombre-archivo) ; asume la extension .lsp
Ejemplo
> (load ‘‘mifichero’’)
T ; T si lo carga, NIL si no lo carga
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Referencia basica. LOAD
LOAD
Carga el codigo fuente contenido en un archivo.
(load path-y-nombre-archivo) ; asume la extension .lsp
Ejemplo
> (load ‘‘mifichero’’)T ; T si lo carga, NIL si no lo carga
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Resumen
Se han mostrado los elementos basicos de Lisp, pero . . .
Para realizar proyectos mas extensos hay que conocer lasestrategias de programacion.
Se recomienda el libro [2] y el manual de referencia [1]
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Resumen
Se han mostrado los elementos basicos de Lisp, pero . . .
Para realizar proyectos mas extensos hay que conocer lasestrategias de programacion.
Se recomienda el libro [2] y el manual de referencia [1]
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
Resumen
Se han mostrado los elementos basicos de Lisp, pero . . .
Para realizar proyectos mas extensos hay que conocer lasestrategias de programacion.
Se recomienda el libro [2] y el manual de referencia [1]
PJM Programacion basica en Lisp
ContenidosObjetivos
Historia de LispProgramacion
Resumen
[Dannenberg, 2007] Roger B. Dannenberg.Nyquist Reference Manual, Version 2.33Carnegie Mellon University, 2007.
[Touretzky, 1990] David Touretzky.Common Lisp: A Gentle Introduction to SymbolicComputation.Carnegie Mellon University, 1990.http://www.cs.cmu.edu/~dst/LispBook
[Steele, 1990] Guy L. Steele Jr.Common Lisp the Language, 2nd editionDigital Press, 1990.http://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2
PJM Programacion basica en Lisp