Programacion b´asica en Lisp - dsi.uclm.esdsi.uclm.es/personal/luisrruiz/curso/tema4.pdf ·...

Post on 18-Jul-2018

224 views 0 download

Transcript of Programacion b´asica en Lisp - dsi.uclm.esdsi.uclm.es/personal/luisrruiz/curso/tema4.pdf ·...

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

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

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

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

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

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