Вы находитесь на странице: 1из 215

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Programaci on b asica en Lisp


Pedro J. Morales Digital Audio & Computer Music Laboratory. UCLM

July 29, 2007

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Objetivos Historia de Lisp Programaci on Resumen

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Objetivos

Aproximaci on hist orica.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Objetivos

Aproximaci on hist orica. Programaci on b asica.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Aproximaci on hist orica

1960. John McCarthy publica un estudio crucial para la programaci on.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Aproximaci on hist orica

1960. John McCarthy publica un estudio crucial para la programaci on. Con unos pocos operadores y notaci on para funciones se puede construir un lenguaje.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Aproximaci on hist orica

1960. John McCarthy publica un estudio crucial para la programaci on. Con unos pocos operadores y notaci on para funciones se puede construir un lenguaje. Llam o al lenguaje LISP, por List Processing

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Aproximaci on hist orica

1960. John McCarthy publica un estudio crucial para la programaci on. Con unos pocos operadores y notaci on para funciones se puede construir un lenguaje. Llam o al lenguaje LISP, por List Processing Usaba la lista como estructura para representar tanto datos como programas.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Aproximaci on hist orica

El descubrimiento de McCarthy es un hito en la historia de la programaci on. . .

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Aproximaci on hist orica

El descubrimiento de McCarthy es un hito en la historia de la programaci on. . . . . . tambi en es un modelo que marca la tendencia de los lenguajes actuales.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Aproximaci on hist orica

El descubrimiento de McCarthy es un hito en la historia de la programaci on. . . . . . tambi en es un modelo que marca la tendencia de los lenguajes actuales. Hay dos modelos: C y Lisp

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Aproximaci on hist orica

El descubrimiento de McCarthy es un hito en la historia de la programaci on. . . . . . tambi en es un modelo que marca la tendencia de los lenguajes actuales. Hay dos modelos: C y Lisp Los lenguajes dise nados en los u ltimos 20 a nos se basan en el modelo de C al que a naden partes de Lisp.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Lisp es un lenguaje congurable

Lisp es el lenguaje m as antiguo que se mantiene activo.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Lisp es un lenguaje congurable

Lisp es el lenguaje m as antiguo que se mantiene activo. Lisp se puede programar en Lisp.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Lisp es un lenguaje congurable

Lisp es el lenguaje m as antiguo que se mantiene activo. Lisp se puede programar en Lisp. Lisp se adapta a cualquier paradigma de programaci on.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Lisp en la actualidad

Hay diversas variantes que se han decantado en dos dialectos.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Lisp en la actualidad

Hay diversas variantes que se han decantado en dos dialectos. Common Lisp es la variante maximalista.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Lisp en la actualidad

Hay diversas variantes que se han decantado en dos dialectos. Common Lisp es la variante maximalista. Scheme es minimalista.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.

Se empotran en aplicaciones espec cas como lenguajes de scripts

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.

Se empotran en aplicaciones espec cas como lenguajes de scripts


Emacs, editor de texto, elisp.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.

Se empotran en aplicaciones espec cas como lenguajes de scripts


Emacs, editor de texto, elisp. GIMP, editor de gr acos, Scheme.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.

Se empotran en aplicaciones espec cas como lenguajes de scripts


Emacs, editor de texto, elisp. GIMP, editor de gr acos, Scheme. Audacity, editor de audio, Nyquist (XLisp).

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.

Se empotran en aplicaciones espec cas como lenguajes de scripts


Emacs, editor de texto, elisp. GIMP, editor de gr acos, Scheme. Audacity, editor de audio, Nyquist (XLisp). LilyPond, partituras musicales, Scheme.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Aplicaciones
Adem as de las implementaciones de Lisp como lenguaje, las versiones m as peque nas
Scheme Subconjuntos de Common Lisp: XLisp, elisp.

Se empotran en aplicaciones espec cas como lenguajes de scripts


Emacs, editor de texto, elisp. GIMP, editor de gr acos, Scheme. Audacity, editor de audio, Nyquist (XLisp). LilyPond, partituras musicales, Scheme. AutoCAD, dise no t ecnico, AutoLisp (XLisp).

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Expresiones en Lisp

Expresiones Lisp eval ua expresiones.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Expresiones en Lisp

Expresiones Lisp eval ua expresiones. Una expresi on es:

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Expresiones en Lisp

Expresiones Lisp eval ua expresiones. Una expresi on es:


Un atomo

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Expresiones en Lisp

Expresiones Lisp eval ua expresiones. Una expresi on es:


Un atomo Una lista.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Tipos b asicos de datos


Atomos Num ericos:

Listas

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Tipos b asicos de datos


Atomos Num ericos: 7, 12.0, 3.1415

Listas

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Tipos b asicos de datos


Atomos Num ericos: 7, 12.0, 3.1415 S mbolo: Secuencia de caracteres alfanum ericos

Listas

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Tipos b asicos de datos


Atomos Num ericos: 7, 12.0, 3.1415 S mbolo: Secuencia de caracteres alfanum ericos a, nota, c4, mesa Listas

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Tipos b asicos de datos


Atomos Num ericos: 7, 12.0, 3.1415 S mbolo: Secuencia de caracteres alfanum ericos a, nota, c4, mesa Listas Se escriben entre par entesis.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Tipos b asicos de datos


Atomos Num ericos: 7, 12.0, 3.1415 S mbolo: Secuencia de caracteres alfanum ericos a, nota, c4, mesa Listas Se escriben entre par entesis. Contienen un conjunto de elementos ordenados:
(2 45 27), (nota c4)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Tipos b asicos de datos


Atomos Num ericos: 7, 12.0, 3.1415 S mbolo: Secuencia de caracteres alfanum ericos a, nota, c4, mesa Listas Se escriben entre par entesis. Contienen un conjunto de elementos ordenados:
(2 45 27), (nota c4)

Puede estar vac a: ()

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Tipos b asicos de datos


Atomos Num ericos: 7, 12.0, 3.1415 S mbolo: Secuencia de caracteres alfanum ericos a, nota, c4, mesa Listas Se escriben entre par entesis. Contienen un conjunto de elementos ordenados:
(2 45 27), (nota c4)

Puede estar vac a: () O contener elementos que sean listas: (a (b c) (d (e f)))


PJM Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Bucle WAIT-READ-EVAL-PRINT

WAIT Lisp muestra el prompt y espera >

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Bucle WAIT-READ-EVAL-PRINT

WAIT Lisp muestra el prompt y espera > READ El usuario escribe una expresi on > (+ 3 4)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Bucle WAIT-READ-EVAL-PRINT

WAIT Lisp muestra el prompt y espera > READ El usuario escribe una expresi on > (+ 3 4) EVAL Lisp eval ua la expresi on.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Bucle WAIT-READ-EVAL-PRINT

WAIT Lisp muestra el prompt y espera > READ El usuario escribe una expresi on > (+ 3 4) EVAL Lisp eval ua la expresi on. PRINT Lisp escribe el resultado > 7

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Evaluaci on de atomos

Num ericos: Devuelven su valor.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Evaluaci on de atomos

Num ericos: Devuelven su valor. Simb olicos: Si el nombre comienza por : devuelve el mismo nombre.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Evaluaci on de atomos

Num ericos: Devuelven su valor. Simb olicos: Si el nombre comienza por : devuelve el mismo nombre. Si tiene ligado un valor devuelve ese valor.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Evaluaci on de atomos

Num ericos: Devuelven su valor. Simb olicos: Si el nombre comienza por : devuelve el mismo nombre. Si tiene ligado un valor devuelve ese valor. Si no tiene valor ligado, devuelve un error.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Ejemplos

> 5.6

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Ejemplos

> 5.6 5.6

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Ejemplos

> 5.6 5.6 > :zx

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Ejemplos

> 5.6 5.6 > :zx :ZX

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Ejemplos

> 5.6 5.6 > :zx :ZX > dfg

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Ejemplos

> 5.6 5.6 > :zx :ZX > dfg error: unbound variable - DFG if continued: try evaluating symbol again 1>

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Expresiones matem aticas

Se utiliza la notaci on preja. 4 + 3

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Expresiones matem aticas

Se utiliza la notaci on preja. 4 + 3 -> (+ 4 3)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Expresiones matem aticas

Se utiliza la notaci on preja. 4 + 3 -> 4 + 3 (7 - 6) (+ 4 3)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Expresiones matem aticas

Se utiliza la notaci on preja. 4 + 3 -> 4 + 3 (7 - 6) -> (+ 4 3) (+ 4 (* 3 (- 7 6)))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Expresiones matem aticas

Se utiliza la notaci on preja. 4 + 3 -> 4 + 3 (7 - 6) -> (+ 4 3) (+ 4 (* 3 (- 7 6)))

El primer elemento de la lista es la operaci on

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Expresiones matem aticas

Se utiliza la notaci on preja. 4 + 3 -> 4 + 3 (7 - 6) -> (+ 4 3) (+ 4 (* 3 (- 7 6)))

El primer elemento de la lista es la operaci on Los dem as elementos son los operandos.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Orden normal de evaluaci on

La evaluaci on empieza por las listas m as internas de la expresi on. (+ (* 3 (- 7 6)) 4)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Orden normal de evaluaci on

La evaluaci on empieza por las listas m as internas de la expresi on. (+ (* 3 (- 7 6)) 4) (+ (* 3 1) 4)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Orden normal de evaluaci on

La evaluaci on empieza por las listas m as internas de la expresi on. (+ (* 3 (- 7 6)) 4) (+ (* 3 1) 4) (+ (* 3 1) 4)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Orden normal de evaluaci on

La evaluaci on empieza por las listas m as internas de la expresi on. (+ (+ (+ (+ (* 3 (- 7 6)) 4) (* 3 1) 4) (* 3 1) 4) 3 4)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Orden normal de evaluaci on

La evaluaci on empieza por las listas m as internas de la expresi on. (+ (+ (+ (+ (+ (* 3 (- 7 6)) 4) (* 3 1) 4) (* 3 1) 4) 3 4) 3 4)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Orden normal de evaluaci on

La evaluaci on empieza por las listas m as internas de la expresi on. (+ (+ (+ (+ (+ 7 (* 3 (- 7 6)) 4) (* 3 1) 4) (* 3 1) 4) 3 4) 3 4)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Evaluaci on n de funciones

El primer elemento de la lista es una funci on Se eval ua el resto de los elementos.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Evaluaci on n de funciones

El primer elemento de la lista es una funci on Se eval ua el resto de los elementos. Se aplican como argumentos a la funci on.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Evaluaci on de formas especiales


Las formas especiales eval uan sus argumentos en distinto orden que las funciones. > (setq x (- 2 3))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Evaluaci on de formas especiales


Las formas especiales eval uan sus argumentos en distinto orden que las funciones. > (setq x (- 2 3)) ; se evalua el segundo argumento

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Evaluaci on de formas especiales


Las formas especiales eval uan sus argumentos en distinto orden que las funciones. > (setq x (- 2 3)) ; se evalua el segundo argumento ; se asigna el valor del segundo argumento ; al simbolo (que es el primer argumento)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Evaluaci on de formas especiales


Las formas especiales eval uan sus argumentos en distinto orden que las funciones. > (setq x (- 2 3)) ; se evalua el segundo argumento ; se asigna el valor del segundo argumento ; al simbolo (que es el primer argumento) > -1 ; resultado

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Evaluaci on de formas especiales


Las formas especiales eval uan sus argumentos en distinto orden que las funciones. > (setq x (- 2 3)) ; se evalua el segundo argumento ; se asigna el valor del segundo argumento ; al simbolo (que es el primer argumento) > -1 ; resultado > x ; el valor asignado a x es

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Evaluaci on de formas especiales


Las formas especiales eval uan sus argumentos en distinto orden que las funciones. > (setq x (- 2 3)) ; se evalua el segundo argumento ; se asigna el valor del segundo argumento ; al simbolo (que es el primer argumento) > -1 ; resultado > x ; el valor asignado a x es > -1 >

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. SETQ

SETQ Liga un valor a un s mbolo.

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. SETQ

SETQ Liga un valor a un s mbolo. (setq s mbolo valor) Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. SETQ

SETQ Liga un valor a un s mbolo. (setq s mbolo valor) Ejemplos > (setq x 25)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. SETQ

SETQ Liga un valor a un s mbolo. (setq s mbolo valor) Ejemplos > (setq x 25) > (setq do-central :c4)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LET

LET Liga valores locales a uno, varios o ning un s mbolo.

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LET

LET Liga valores locales a uno, varios o ning un s mbolo. (let (ligaduras) expresiones) Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LET

LET Liga valores locales a uno, varios o ning un s mbolo. (let (ligaduras) expresiones) Ejemplos > (let ((a 2) (b 3) (c 4))

(+ a (* 2 b) (/ c 2)))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LET

LET Liga valores locales a uno, varios o ning un s mbolo. (let (ligaduras) expresiones) Ejemplos > (let ((a 2) (b 3) (c 4)) 10

(+ a (* 2 b) (/ c 2)))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LET

LET Liga valores locales a uno, varios o ning un s mbolo. (let (ligaduras) expresiones) Ejemplos > (let ((a 2) (b 3) (c 4)) 10 > a

(+ a (* 2 b) (/ c 2)))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LET

LET Liga valores locales a uno, varios o ning un s mbolo. (let (ligaduras) expresiones) Ejemplos > (let ((a 2) (b 3) (c 4)) (+ a (* 2 b) (/ c 2))) 10 > a error: unbound variable - A

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. COND


COND Eval ua expresiones de manera condicional.

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. COND


COND Eval ua expresiones de manera condicional. (cond (expresi on-l ogica expresiones*)*) Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. COND


COND Eval ua expresiones de manera condicional. (cond (expresi on-l ogica expresiones*)*) Ejemplos > (let ((a 1) (b 2) (c (cond ((eql a ((eql a ((eql a

1) b) c) d)

(d 1)) 1) "Primera expresion" 2) 3)))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. COND


COND Eval ua expresiones de manera condicional. (cond (expresi on-l ogica expresiones*)*) Ejemplos > (let ((a 1) (b 2) (c (cond ((eql a ((eql a ((eql a 2

1) b) c) d)

(d 1)) 1) "Primera expresion" 2) 3)))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. QUOTE


QUOTE Bloquea la evaluaci on.

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. QUOTE


QUOTE Bloquea la evaluaci on. (quote s mbolo) devuelve s mbolo

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. QUOTE


QUOTE Bloquea la evaluaci on. (quote s mbolo) devuelve s mbolo Notaci on equivalente: s mbolo Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. QUOTE


QUOTE Bloquea la evaluaci on. (quote s mbolo) devuelve s mbolo Notaci on equivalente: s mbolo Ejemplos > (quote a)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. QUOTE


QUOTE Bloquea la evaluaci on. (quote s mbolo) devuelve s mbolo Notaci on equivalente: s mbolo Ejemplos > (quote a) a

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. QUOTE


QUOTE Bloquea la evaluaci on. (quote s mbolo) devuelve s mbolo Notaci on equivalente: s mbolo Ejemplos > (quote a) a > (setq a (quote b))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. QUOTE


QUOTE Bloquea la evaluaci on. (quote s mbolo) devuelve s mbolo Notaci on equivalente: s mbolo Ejemplos > (quote a) a > (setq a (quote b)) b

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. QUOTE


QUOTE Bloquea la evaluaci on. (quote s mbolo) devuelve s mbolo Notaci on equivalente: s mbolo Ejemplos > (quote a) a > (setq a (quote b)) b > a

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. QUOTE


QUOTE Bloquea la evaluaci on. (quote s mbolo) devuelve s mbolo Notaci on equivalente: s mbolo Ejemplos > (quote a) a > (setq a (quote b)) b > a b
PJM Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. CONS


CONS Constructor de un par ordenado. Puede construir listas.

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. CONS


CONS Constructor de un par ordenado. Puede construir listas. (cons primer-elemento segundo-elemento) Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. CONS


CONS Constructor de un par ordenado. Puede construir listas. (cons primer-elemento segundo-elemento) Ejemplos > (cons a b)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. CONS


CONS Constructor de un par ordenado. Puede construir listas. (cons primer-elemento segundo-elemento) Ejemplos > (cons a b) (a . b)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. CONS


CONS Constructor de un par ordenado. Puede construir listas. (cons primer-elemento segundo-elemento) Ejemplos > (cons a b) (a . b) > (cons a ())

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. CONS


CONS Constructor de un par ordenado. Puede construir listas. (cons primer-elemento segundo-elemento) Ejemplos > (cons a b) (a . b) > (cons a ()) (a)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. CONS


CONS Constructor de un par ordenado. Puede construir listas. (cons primer-elemento segundo-elemento) Ejemplos > (cons a b) (a . b) > (cons a ()) (a) > (cons a (cons b ()))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. CONS


CONS Constructor de un par ordenado. Puede construir listas. (cons primer-elemento segundo-elemento) Ejemplos > (cons a b) (a . b) > (cons a ()) (a) > (cons a (cons b ())) (a b)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LIST

LIST Construye listas de forma m as sencilla que CONS.

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LIST

LIST Construye listas de forma m as sencilla que CONS. (list elemento-1 elemento-2 elemento-3 . . . ) Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LIST

LIST Construye listas de forma m as sencilla que CONS. (list elemento-1 elemento-2 elemento-3 . . . ) Ejemplos > (list 1 2 3)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LIST

LIST Construye listas de forma m as sencilla que CONS. (list elemento-1 elemento-2 elemento-3 . . . ) Ejemplos > (list 1 2 3) (1 2 3)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LIST

LIST Construye listas de forma m as sencilla que CONS. (list elemento-1 elemento-2 elemento-3 . . . ) Ejemplos > (list 1 2 3) (1 2 3) > (list 1 a :hola cadena)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LIST

LIST Construye listas de forma m as sencilla que CONS. (list elemento-1 elemento-2 elemento-3 . . . ) Ejemplos > (list 1 2 3) (1 2 3) > (list 1 a :hola cadena) (1 a :hola cadena)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. APPEND


APPEND Concatena listas.

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. APPEND


APPEND Concatena listas. (append lista-1 lista-2 lista-3 . . . ) Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. APPEND


APPEND Concatena listas. (append lista-1 lista-2 lista-3 . . . ) Ejemplos > (setq lista-1 (list 1 2 3))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. APPEND


APPEND Concatena listas. (append lista-1 lista-2 lista-3 . . . ) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. APPEND


APPEND Concatena listas. (append lista-1 lista-2 lista-3 . . . ) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (setq lista-2 (list 1 a :hola cadena))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. APPEND


APPEND Concatena listas. (append lista-1 lista-2 lista-3 . . . ) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (setq lista-2 (list 1 a :hola cadena)) (1 a :hola cadena)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. APPEND


APPEND Concatena listas. (append lista-1 lista-2 lista-3 . . . ) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (setq lista-2 (list 1 a :hola cadena)) (1 a :hola cadena) > (append lista-1 lista-2)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. APPEND


APPEND Concatena listas. (append lista-1 lista-2 lista-3 . . . ) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (setq lista-2 (list 1 a :hola cadena)) (1 a :hola cadena) > (append lista-1 lista-2) (1 2 3 1 a :hola cadena)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. FIRST


FIRST. Equivalente a CAR. Selecciona el primer elemento de un par ordenado (o lista).

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. FIRST


FIRST. Equivalente a CAR. Selecciona el primer elemento de un par ordenado (o lista). (rst lista) Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. FIRST


FIRST. Equivalente a CAR. Selecciona el primer elemento de un par ordenado (o lista). (rst lista) Ejemplos > (setq lista-1 (list 1 2 3))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. FIRST


FIRST. Equivalente a CAR. Selecciona el primer elemento de un par ordenado (o lista). (rst lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. FIRST


FIRST. Equivalente a CAR. Selecciona el primer elemento de un par ordenado (o lista). (rst lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (first lista-1)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. FIRST


FIRST. Equivalente a CAR. Selecciona el primer elemento de un par ordenado (o lista). (rst lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (first lista-1) 1

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. FIRST


FIRST. Equivalente a CAR. Selecciona el primer elemento de un par ordenado (o lista). (rst lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (first lista-1) 1 > (first (cons 5 7))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. FIRST


FIRST. Equivalente a CAR. Selecciona el primer elemento de un par ordenado (o lista). (rst lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (first lista-1) 1 > (first (cons 5 7)) 5

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. REST


REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista).

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. REST


REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista). (rest lista) Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. REST


REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista). (rest lista) Ejemplos > (setq lista-1 (list 1 2 3))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. REST


REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista). (rest lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. REST


REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista). (rest lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (rest lista-1)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. REST


REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista). (rest lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (rest lista-1) (2 3)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. REST


REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista). (rest lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (rest lista-1) (2 3) > (rest (cons 5 7))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. REST


REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista). (rest lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (rest lista-1) (2 3) > (rest (cons 5 7)) 7

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. REST


REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista). (rest lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (rest lista-1) (2 3) > (rest (cons 5 7)) 7 > (first (rest lista-1))
PJM Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. REST


REST. Equivalente a CDR. Selecciona el segundo elemento de un par ordenado (o la lista que sigue al primer elemento de una lista). (rest lista) Ejemplos > (setq lista-1 (list 1 2 3)) (1 2 3) > (rest lista-1) (2 3) > (rest (cons 5 7)) 7 > (first (rest lista-1)) 2
PJM Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. EQ
EQ. Detecta si el valor de un s mbolo es id entico a otro.

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. EQ
EQ. Detecta si el valor de un s mbolo es id entico a otro. (eq s mbolo-1 s mbolo-2) Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. EQ
EQ. Detecta si el valor de un s mbolo es id entico a otro. (eq s mbolo-1 s mbolo-2) Ejemplos > (eq a a)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. EQ
EQ. Detecta si el valor de un s mbolo es id entico a otro. (eq s mbolo-1 s mbolo-2) Ejemplos > (eq a a) T

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. EQ
EQ. Detecta si el valor de un s mbolo es id entico a otro. (eq s mbolo-1 s mbolo-2) Ejemplos > (eq a a) T > (eq a b)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. EQ
EQ. Detecta si el valor de un s mbolo es id entico a otro. (eq s mbolo-1 s mbolo-2) Ejemplos > (eq a a) T > (eq a b) NIL

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. EQ
EQ. Detecta si el valor de un s mbolo es id entico a otro. (eq s mbolo-1 s mbolo-2) Ejemplos > (eq a a) T > (eq a b) NIL > (eq (list 1 2 3) (list 1 2 3))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. EQ
EQ. Detecta si el valor de un s mbolo es id entico a otro. (eq s mbolo-1 s mbolo-2) Ejemplos > (eq a a) T > (eq a b) NIL > (eq (list 1 2 3) (list 1 2 3)) NIL

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. DEFUN


DEFUN. Sirve para denir una funci on de usuario y ligarla a un s mbolo.

Ejemplo: C alculo de la hipotenusa

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. DEFUN


DEFUN. Sirve para denir una funci on de usuario y ligarla a un s mbolo. (defun nombre-funci on lista-de-argumentos cuerpo) Ejemplo: C alculo de la hipotenusa

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. DEFUN


DEFUN. Sirve para denir una funci on de usuario y ligarla a un s mbolo. (defun nombre-funci on lista-de-argumentos cuerpo) Ejemplo: C alculo de la hipotenusa (defun pitagoras (a b) (sqrt (+ (expt a 2.0) (expt b 2.0)))) Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. DEFUN


DEFUN. Sirve para denir una funci on de usuario y ligarla a un s mbolo. (defun nombre-funci on lista-de-argumentos cuerpo) Ejemplo: C alculo de la hipotenusa (defun pitagoras (a b) (sqrt (+ (expt a 2.0) (expt b 2.0)))) Ejemplos > (pitagoras 3 4)
PJM Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. DEFUN


DEFUN. Sirve para denir una funci on de usuario y ligarla a un s mbolo. (defun nombre-funci on lista-de-argumentos cuerpo) Ejemplo: C alculo de la hipotenusa (defun pitagoras (a b) (sqrt (+ (expt a 2.0) (expt b 2.0)))) Ejemplos > (pitagoras 3 4) 5
PJM Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25 > (defun identidad (a) a)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25 > (defun identidad (a) a) IDENTIDAD

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25 > (defun identidad (a) a) IDENTIDAD > identidad

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25 > (defun identidad (a) a) IDENTIDAD > identidad 25

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25 > (defun identidad (a) a) IDENTIDAD > identidad 25 > (function identidad)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25 > (defun identidad (a) a) IDENTIDAD > identidad 25 > (function identidad) #<Closure-IDENTIDAD: #82ae524>

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25 > (defun identidad (a) a) IDENTIDAD > identidad 25 > (function identidad) #<Closure-IDENTIDAD: #82ae524> > #identidad

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica.
Un s mbolo puede estar ligado a un valor y una funci on. > (setq identidad 25) 25 > (defun identidad (a) a) IDENTIDAD > identidad 25 > (function identidad) #<Closure-IDENTIDAD: #82ae524> > #identidad #<Closure-IDENTIDAD: #82ae524>

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LAMBDA

LAMBDA. Devuelve una funci on sin nombre (sin ligarla a un s mbolo).

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LAMBDA

LAMBDA. Devuelve una funci on sin nombre (sin ligarla a un s mbolo). (lambda lista-de-argumentos cuerpo) Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LAMBDA

LAMBDA. Devuelve una funci on sin nombre (sin ligarla a un s mbolo). (lambda lista-de-argumentos cuerpo) Ejemplos > ((lambda (a b) (+ a b)) 3 4)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LAMBDA

LAMBDA. Devuelve una funci on sin nombre (sin ligarla a un s mbolo). (lambda lista-de-argumentos cuerpo) Ejemplos > ((lambda (a b) (+ a b)) 3 4) 7

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. BACKQUOTE


BACKQUOTE. Abreviatura: Al aplicarlo a una lista realiza una evaluaci on selectiva.

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. BACKQUOTE


BACKQUOTE. Abreviatura: Al aplicarlo a una lista realiza una evaluaci on selectiva. Funciona como una plantilla donde s olo se eval uan las expresiones precedidas por una coma.

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. BACKQUOTE


BACKQUOTE. Abreviatura: Al aplicarlo a una lista realiza una evaluaci on selectiva. Funciona como una plantilla donde s olo se eval uan las expresiones precedidas por una coma. (backquote plantilla)

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. BACKQUOTE


BACKQUOTE. Abreviatura: Al aplicarlo a una lista realiza una evaluaci on selectiva. Funciona como una plantilla donde s olo se eval uan las expresiones precedidas por una coma. (backquote plantilla) plantilla Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. BACKQUOTE


BACKQUOTE. Abreviatura: Al aplicarlo a una lista realiza una evaluaci on selectiva. Funciona como una plantilla donde s olo se eval uan las expresiones precedidas por una coma. (backquote plantilla) plantilla Ejemplos > (a b pi c)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. BACKQUOTE


BACKQUOTE. Abreviatura: Al aplicarlo a una lista realiza una evaluaci on selectiva. Funciona como una plantilla donde s olo se eval uan las expresiones precedidas por una coma. (backquote plantilla) plantilla Ejemplos > (a b pi c) (a b pi c)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. BACKQUOTE


BACKQUOTE. Abreviatura: Al aplicarlo a una lista realiza una evaluaci on selectiva. Funciona como una plantilla donde s olo se eval uan las expresiones precedidas por una coma. (backquote plantilla) plantilla Ejemplos > (a b pi c) (a b pi c) > (a b ,pi c)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. BACKQUOTE


BACKQUOTE. Abreviatura: Al aplicarlo a una lista realiza una evaluaci on selectiva. Funciona como una plantilla donde s olo se eval uan las expresiones precedidas por una coma. (backquote plantilla) plantilla Ejemplos > (a b pi c) (a b pi c) > (a b ,pi c) (a b 3.1416 c)
PJM Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. DEFMACRO


DEFMACRO. Crea una expresi on y despu es la eval ua.

Ejemplo

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. DEFMACRO


DEFMACRO. Crea una expresi on y despu es la eval ua. (defmacro nombre-macro lista-de-argumentos cuerpo) Ejemplo

Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. DEFMACRO


DEFMACRO. Crea una expresi on y despu es la eval ua. (defmacro nombre-macro lista-de-argumentos cuerpo) Ejemplo (defmacro mi-setq (plaza valor) (setq ,plaza ,valor)) Ejemplos

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. DEFMACRO


DEFMACRO. Crea una expresi on y despu es la eval ua. (defmacro nombre-macro lista-de-argumentos cuerpo) Ejemplo (defmacro mi-setq (plaza valor) (setq ,plaza ,valor)) Ejemplos > (mi-setq a b)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. DEFMACRO


DEFMACRO. Crea una expresi on y despu es la eval ua. (defmacro nombre-macro lista-de-argumentos cuerpo) Ejemplo (defmacro mi-setq (plaza valor) (setq ,plaza ,valor)) Ejemplos > (mi-setq a b) B
PJM Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. DEFMACRO


DEFMACRO. Crea una expresi on y despu es la eval ua. (defmacro nombre-macro lista-de-argumentos cuerpo) Ejemplo (defmacro mi-setq (plaza valor) (setq ,plaza ,valor)) Ejemplos > (mi-setq a b) B > a
PJM Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. DEFMACRO


DEFMACRO. Crea una expresi on y despu es la eval ua. (defmacro nombre-macro lista-de-argumentos cuerpo) Ejemplo (defmacro mi-setq (plaza valor) (setq ,plaza ,valor)) Ejemplos > (mi-setq a b) B > a B

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Otros tipos de datos


Array Colecci on de datos a los que se accede mediante un ndice num erico.

Ejemplo

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Otros tipos de datos


Array Colecci on de datos a los que se accede mediante un ndice num erico. Creaci on: (make-array tama no)

Ejemplo

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Otros tipos de datos


Array Colecci on de datos a los que se accede mediante un ndice num erico. Creaci on: (make-array tama no) Acceso: (aref array n) Ejemplo

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Otros tipos de datos


Array Colecci on de datos a los que se accede mediante un ndice num erico. Creaci on: (make-array tama no) Acceso: (aref array n) Ejemplo > (setq mi-array (make-array 4))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Otros tipos de datos


Array Colecci on de datos a los que se accede mediante un ndice num erico. Creaci on: (make-array tama no) Acceso: (aref array n) Ejemplo > (setq mi-array (make-array 4)) #(NIL NIL NIL NIL)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Otros tipos de datos


Array Colecci on de datos a los que se accede mediante un ndice num erico. Creaci on: (make-array tama no) Acceso: (aref array n) Ejemplo > (setq mi-array (make-array 4)) #(NIL NIL NIL NIL) > (setf (aref mi-array 2) 3.14)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Otros tipos de datos


Array Colecci on de datos a los que se accede mediante un ndice num erico. Creaci on: (make-array tama no) Acceso: (aref array n) Ejemplo > (setq mi-array (make-array 4)) #(NIL NIL NIL NIL) > (setf (aref mi-array 2) 3.14) 3.14

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Otros tipos de datos


Array Colecci on de datos a los que se accede mediante un ndice num erico. Creaci on: (make-array tama no) Acceso: (aref array n) Ejemplo > (setq mi-array (make-array 4)) #(NIL NIL NIL NIL) > (setf (aref mi-array 2) 3.14) 3.14 > mi-array
PJM Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Otros tipos de datos


Array Colecci on de datos a los que se accede mediante un ndice num erico. Creaci on: (make-array tama no) Acceso: (aref array n) Ejemplo > (setq mi-array (make-array 4)) #(NIL NIL NIL NIL) > (setf (aref mi-array 2) 3.14) 3.14 > mi-array #(NIL NIL 3.14 NIL)
PJM Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Otros tipos de datos


Strings Secuencia de caracteres alfanum ericos.

Ejemplo

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Otros tipos de datos


Strings Secuencia de caracteres alfanum ericos. Se autoeval uan. Ejemplo

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Otros tipos de datos


Strings Secuencia de caracteres alfanum ericos. Se autoeval uan. Ejemplo > mi-cadena

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Otros tipos de datos


Strings Secuencia de caracteres alfanum ericos. Se autoeval uan. Ejemplo > mi-cadena mi-cadena

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Otros tipos de datos


Strings Secuencia de caracteres alfanum ericos. Se autoeval uan. Ejemplo > mi-cadena mi-cadena > (setq mi-string mi-cadena-2)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Otros tipos de datos


Strings Secuencia de caracteres alfanum ericos. Se autoeval uan. Ejemplo > mi-cadena mi-cadena > (setq mi-string mi-cadena-2) mi-cadena-2

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Otros tipos de datos


Strings Secuencia de caracteres alfanum ericos. Se autoeval uan. Ejemplo > mi-cadena mi-cadena > (setq mi-string mi-cadena-2) mi-cadena-2 > mi-string

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Otros tipos de datos


Strings Secuencia de caracteres alfanum ericos. Se autoeval uan. Ejemplo > mi-cadena mi-cadena > (setq mi-string mi-cadena-2) mi-cadena-2 > mi-string mi-cadena-2

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Entrada


READ READ convierte los caracteres de entrada en expresiones de Lisp.

Ejemplo

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Entrada


READ READ convierte los caracteres de entrada en expresiones de Lisp. (read) Ejemplo

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Entrada


READ READ convierte los caracteres de entrada en expresiones de Lisp. (read) Ejemplo > (setq a (read))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Entrada


READ READ convierte los caracteres de entrada en expresiones de Lisp. (read) Ejemplo > (setq a (read)) 56

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Entrada


READ READ convierte los caracteres de entrada en expresiones de Lisp. (read) Ejemplo > (setq a (read)) 56 56

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Entrada


READ READ convierte los caracteres de entrada en expresiones de Lisp. (read) Ejemplo > (setq a (read)) 56 56 > a

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Entrada


READ READ convierte los caracteres de entrada en expresiones de Lisp. (read) Ejemplo > (setq a (read)) 56 56 > a 56

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Salida

PRINT PRINT convierte una expresi on de Lisp en una secuencia de caracteres.

Ejemplo

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Salida

PRINT PRINT convierte una expresi on de Lisp en una secuencia de caracteres. (print expresi on) Ejemplo

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Salida

PRINT PRINT convierte una expresi on de Lisp en una secuencia de caracteres. (print expresi on) Ejemplo > (print (list 1 2 3))

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Salida

PRINT PRINT convierte una expresi on de Lisp en una secuencia de caracteres. (print expresi on) Ejemplo > (print (list 1 2 3)) (1 2 3); lo que imprime en la consola

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. Salida

PRINT PRINT convierte una expresi on de Lisp en una secuencia de caracteres. (print expresi on) Ejemplo > (print (list 1 2 3)) (1 2 3); lo que imprime en la consola (1 2 3); lo que devuelve

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LOAD

LOAD Carga el c odigo fuente contenido en un archivo.

Ejemplo

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LOAD

LOAD Carga el c odigo fuente contenido en un archivo. (load path-y-nombre-archivo) ; asume la extensi on .lsp Ejemplo

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LOAD

LOAD Carga el c odigo fuente contenido en un archivo. (load path-y-nombre-archivo) ; asume la extensi on .lsp Ejemplo > (load mifichero)

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Referencia b asica. LOAD

LOAD Carga el c odigo fuente contenido en un archivo. (load path-y-nombre-archivo) ; asume la extensi on .lsp Ejemplo > (load mifichero) T ; T si lo carga, NIL si no lo carga

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Resumen

Se han mostrado los elementos b asicos de Lisp, pero . . .

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Resumen

Se han mostrado los elementos b asicos de Lisp, pero . . . Para realizar proyectos m as extensos hay que conocer las estrategias de programaci on.

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

Resumen

Se han mostrado los elementos b asicos de Lisp, pero . . . Para realizar proyectos m as extensos hay que conocer las estrategias de programaci on. Se recomienda el libro [2] y el manual de referencia [1]

PJM

Programaci on b asica en Lisp

Contenidos Objetivos Historia de Lisp Programaci on Resumen

[Dannenberg, 2007] Roger B. Dannenberg. Nyquist Reference Manual, Version 2.33 Carnegie Mellon University, 2007. [Touretzky, 1990] David Touretzky. Common Lisp: A Gentle Introduction to Symbolic Computation. Carnegie Mellon University, 1990. http://www.cs.cmu.edu/~dst/LispBook [Steele, 1990] Guy L. Steele Jr. Common Lisp the Language, 2nd edition Digital Press, 1990. http://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2

PJM

Programaci on b asica en Lisp

Вам также может понравиться