Está en la página 1de 0

Introduccin a LISP

Introduccin a LISP

Objetivos del curso Laboratorio IA


Objetivos del curso Laboratorio IA

Herramienta Lispworks
Herramienta Lispworks
Caractersticas principales del len!uaje
Caractersticas principales del len!uaje

Operaciones con listas


Operaciones con listas

Asi!nacin de valores
Asi!nacin de valores
Inteli!encia Arti"icial #$%&'% Inteli!encia Arti"icial #$%&'% (olando A) *a!ui+a P,re- (olando A) *a!ui+a P,re-
Semestre #$%&'%
Semestre #$%&'%

.iblio!ra"a
.iblio!ra"a

LISP 3rd ed. ,


LISP 3rd ed. ,
Patrick /inston0.ert1old Horn2
Patrick /inston0.ert1old Horn2
1991, Ed.
1991, Ed.
Addison'/esle3
Addison'/esle3

A4SI Common LISP2


A4SI Common LISP2
Paul 5ra1am2 %6672 8d)
Paul 5ra1am2 %6672 8d)
Prentice Hall
Prentice Hall

CO**O4 LISP ' A 5entle Introduction to


CO**O4 LISP ' A 5entle Introduction to
S3mbolic Computation2 9avid :ouret-k32
S3mbolic Computation2 9avid :ouret-k32
%66$2 :1e .enjamin0Cummin!s Publis1in!
%66$2 :1e .enjamin0Cummin!s Publis1in!
Compan32 Inc)
Compan32 Inc)
9isponible en;
9isponible en;
1ttp;00www)cs)cmu)edu0<dst0Lisp.ook0
1ttp;00www)cs)cmu)edu0<dst0Lisp.ook0
Inteli!encia Arti"icial #$%&'% Inteli!encia Arti"icial #$%&'% (olando A) *a!ui+a P,re- (olando A) *a!ui+a P,re-
Len!uaje LISP
Len!uaje LISP

.iblio!ra"a
.iblio!ra"a

On Lisp2 Paul 5ra1am2 Prentice Hall)


On Lisp2 Paul 5ra1am2 Prentice Hall)
9isponible en;
9isponible en;
1ttp;00www)paul!ra1am)com0onlispte=t)1tml
1ttp;00www)paul!ra1am)com0onlispte=t)1tml
Inteli!encia Arti"icial #$%&'% Inteli!encia Arti"icial #$%&'% (olando A) *a!ui+a P,re- (olando A) *a!ui+a P,re-
Len!uaje LISP
Len!uaje LISP

Herramienta a usar en laboratorio;


Herramienta a usar en laboratorio;

Lispworks v para /indows


Lispworks v para /indows

Otras 1erramientas
Otras 1erramientas

>ran- LISP
>ran- LISP
?
?
1ttp;00www)"ran-)com0downloads0@
1ttp;00www)"ran-)com0downloads0@

CLISP ?1ttp;00www)clisp)or!0@
CLISP ?1ttp;00www)clisp)or!0@

SLI*8
SLI*8

Plu!'ins para 8clipse ?Cusp2 9andelion@


Plu!'ins para 8clipse ?Cusp2 9andelion@
Inteli!encia Arti"icial #$%&'% Inteli!encia Arti"icial #$%&'% (olando A) *a!ui+a P,re- (olando A) *a!ui+a P,re-
Len!uaje LISP
Len!uaje LISP
Len!uaje LISP
Len!uaje LISP

Caractersticas del len!uaje;


Caractersticas del len!uaje;

Len!uaje orientado a la IA
Len!uaje orientado a la IA

LIS
LIS
t
t
P
P
rocessin!
rocessin!

4umerosos dialectos; A4SI LISP


4umerosos dialectos; A4SI LISP

9i"cil de leer sin 1erramientas


9i"cil de leer sin 1erramientas

Interpretado 3 compilado
Interpretado 3 compilado

8lementos principales; smbolos 3 listas


8lementos principales; smbolos 3 listas

>acilidades para !estin de memoria


>acilidades para !estin de memoria

4otacin pre"ija
4otacin pre"ija
Inteli!encia Arti"icial #$%&'% Inteli!encia Arti"icial #$%&'% (olando A) *a!ui+a P,re- (olando A) *a!ui+a P,re-

8lementos del len!uaje


8lementos del len!uaje

Atomos
Atomos

8lementos bBsicos del len!uaje 8lementos bBsicos del len!uaje

Atomos num,ricos ?nCmeros@2 Btomos simblicos Atomos num,ricos ?nCmeros@2 Btomos simblicos
?smbolos@) ?smbolos@)

8D*S) % A >> A4A E 8D*S) % A >> A4A E

Listas
Listas

Listas2 sublistas Listas2 sublistas

Otros elementos
Otros elementos

Cadenas2 estructuras
Cadenas2 estructuras

*atrices2 vectores
*atrices2 vectores
Inteli!encia Arti"icial #$%&'% Inteli!encia Arti"icial #$%&'% (olando A) *a!ui+a P,re- (olando A) *a!ui+a P,re-
Len!uaje LISP
Len!uaje LISP
8lementos del len!uaje
8lementos del len!uaje
Inteli!encia Arti"icial #$%&'% Inteli!encia Arti"icial #$%&'% (olando A) *a!ui+a P,re- (olando A) *a!ui+a P,re-
LIS:AS SF.LIS:AS 4F*8(OS
SI*.OLOS
LIS:AS
A:O*OS
8GP(8SIO48S LISP

Smbolos especiales;
Smbolos especiales;

4IL
4IL

>ALSO2 >ALS8
>ALSO2 >ALS8
Lista vaca
Lista vaca

:(F8
:(F8

H8(9A98(O
H8(9A98(O
Inteli!encia Arti"icial #$%&'% Inteli!encia Arti"icial #$%&'% (olando A) *a!ui+a P,re- (olando A) *a!ui+a P,re-
Len!uaje LISP
Len!uaje LISP
Len!uaje LISP
Len!uaje LISP

(8PL
(8PL
.ucle lee'evalCa'imprime
.ucle lee'evalCa'imprime
loop
loop


read in an e=pression "rom t1e consoleI
read in an e=pression "rom t1e consoleI


evaluate t1e e=pressionI
evaluate t1e e=pressionI


print t1e result o" evaluation to t1e consoleI
print t1e result o" evaluation to t1e consoleI
end loop)
end loop)

8D*) ?# J cos?$@ J ?K L M@@2 8D*) ?# J cos?$@ J ?K L M@@2


?J # ?cos $@ ?L K M@@ ?J # ?cos $@ ?L K M@@ #$)$ #$)$
Inteli!encia Arti"icial #$%&'% Inteli!encia Arti"icial #$%&'% (olando A) *a!ui+a P,re- (olando A) *a!ui+a P,re-
Len!uaje LISP
Len!uaje LISP

(e!las de evaluacin
(e!las de evaluacin

evaluacin de un nCmero da como resultado


evaluacin de un nCmero da como resultado
el mismo nCmero
el mismo nCmero

evaluacin de un strin! da como resultado el


evaluacin de un strin! da como resultado el
mismo strin!
mismo strin!

evaluacin de los smbolos especiales 4IL2 :


evaluacin de los smbolos especiales 4IL2 :
da como resultado los mismos smbolos
da como resultado los mismos smbolos

evaluacin de un smbolo
evaluacin de un smbolo

se comprueba si tienen al!Cn valor asociadoI si no se comprueba si tienen al!Cn valor asociadoI si no
tienen valor al!uno2 se produce un error tienen valor al!uno2 se produce un error

si un smbolo tiene un valor asociado2 este valor si un smbolo tiene un valor asociado2 este valor
es el resultado de la evaluacin es el resultado de la evaluacin
Inteli!encia Arti"icial #$%&'% Inteli!encia Arti"icial #$%&'% (olando A) *a!ui+a P,re- (olando A) *a!ui+a P,re-
Len!uaje LISP
Len!uaje LISP

Criterios de evaluacin
Criterios de evaluacin

evaluacin de una lista


evaluacin de una lista

se comprueba si %er elemento de lista es un se comprueba si %er elemento de lista es un


smbolo Nue tiene asociado un operador smbolo Nue tiene asociado un operador
?prede"inido o de"inido por el usuario@ ?prede"inido o de"inido por el usuario@

el resto de los elementos de la lista como los el resto de los elementos de la lista como los
ar!tos de dic1o operador ar!tos de dic1o operador

e=cepciones; al!unas "ormas especiales ?i" let setN e=cepciones; al!unas "ormas especiales ?i" let setN
Nuote letJ declare@ no si!uen la re!la !ral de Nuote letJ declare@ no si!uen la re!la !ral de
evaluacin de "unciones) evaluacin de "unciones)
Inteli!encia Arti"icial #$%&'% Inteli!encia Arti"icial #$%&'% (olando A) *a!ui+a P,re- (olando A) *a!ui+a P,re-
>uncin
>uncin
eval
eval

Convenciones de sinta=is
Convenciones de sinta=is

?
?

inicio de una lista


inicio de una lista

@
@

"inal de una lista


"inal de una lista

I
I

inicio de comentario
inicio de comentario

O O
O O

inicio 3 "in de strin!


inicio 3 "in de strin!

P
P

caracter para aplicar "c Nuote


caracter para aplicar "c Nuote

espacios en blanco
espacios en blanco

separan elementos de
separan elementos de
una lista
una lista
Inteli!encia Arti"icial #$%&'% Inteli!encia Arti"icial #$%&'% (olando A) *a!ui+a P,re- (olando A) *a!ui+a P,re-
Len!uaje LISP
Len!uaje LISP
Len!uaje LISP
Len!uaje LISP

8D*S) ?# J cos?$@ J ?K L M@@2 8D*S) ?# J cos?$@ J ?K L M@@2

?J # ?cos $@ ?L K M@@ ?J # ?cos $@ ?L K M@@ #$)$ #$)$

O O8sto es un strin!Q 8sto es un strin!Q Q8sto es un strin!Q Q8sto es un strin!Q

R)R R)R R)R R)R

a a 8rror; :1e variable A is unbound) 8rror; :1e variable A is unbound)


Inteli!encia Arti"icial #$%&'% Inteli!encia Arti"icial #$%&'% (olando A) *a!ui+a P,re- (olando A) *a!ui+a P,re-

8vitar la evaluacin
8vitar la evaluacin

Si se Nuiere usar un smbolo como un dato se


Si se Nuiere usar un smbolo como un dato se
puede impedir su evaluacin
puede impedir su evaluacin

Se usa la "uncin Nuote


Se usa la "uncin Nuote

8D*) ?Nuote a@ 8D*) ?Nuote a@ A A

O se usa un apstro"e; P
O se usa un apstro"e; P

8D*) Pa 8D*) Pa A A

8D*) Pbar-a 8D*) Pbar-a .A(SA .A(SA

O
O
Inteli!encia Arti"icial #$%&'% Inteli!encia Arti"icial #$%&'% (olando A) *a!ui+a P,re- (olando A) *a!ui+a P,re-
Len!uaje LISP
Len!uaje LISP

Se e"ectCa mediante S8:T2 S8:>


Se e"ectCa mediante S8:T2 S8:>

S8:T
S8:T

Asocia de modo !lobal un smbolo a un


Asocia de modo !lobal un smbolo a un
elemento ?Btomos2 listas2 vectores2 etc)@
elemento ?Btomos2 listas2 vectores2 etc)@

>ormato;
>ormato;
(setq var1 elem1 var2 elem2 ...)
(setq var1 elem1 var2 elem2 ...)

los los elemN elemN son evaluadas 3 el resultado es son evaluadas 3 el resultado es
almacenado en las variables almacenado en las variables varN varN

las las varN varN no son evaluadas no son evaluadas

S8:T devuelve el Cltimo valor asi!nado S8:T devuelve el Cltimo valor asi!nado
Inteli!encia Arti"icial #$%&'% Inteli!encia Arti"icial #$%&'% (olando A) *a!ui+a P,re- (olando A) *a!ui+a P,re-
Asi!nacin de valores en LISP
Asi!nacin de valores en LISP

S8:T
S8:T

8D*S)
8D*S)

?setN L #@ ?setN L #@ # #

L L # #

?setN ?setN C U8@ @ @ 8 8

C C 8 8

?setN 9 V * P1@ ?setN 9 V * P1@ H H

9 9 V V

* * H H

?setN H U?% # &@@ ?setN H U?% # &@@ ?% # &@ ?% # &@

H H ?% # &@ ?% # &@
Inteli!encia Arti"icial #$%&'% Inteli!encia Arti"icial #$%&'% (olando A) *a!ui+a P,re- (olando A) *a!ui+a P,re-
Asi!nacin de valores en LISP
Asi!nacin de valores en LISP

S8:T
S8:T

Asocia de modo !lobal un smbolo a un


Asocia de modo !lobal un smbolo a un
elemento ?Btomos2 listas2 vectores2 etc)@
elemento ?Btomos2 listas2 vectores2 etc)@

>ormato;
>ormato;
(setq var1 (read))
(setq var1 (read))

se escribe valor del Btomo o lista deseado2 lue!o se escribe valor del Btomo o lista deseado2 lue!o
se da W84:8(X se da W84:8(X

8D*S) 8D*S)

?setN = ?read@@ ?setN = ?read@@


u u F F
Inteli!encia Arti"icial #$%&'% Inteli!encia Arti"icial #$%&'% (olando A) *a!ui+a P,re- (olando A) *a!ui+a P,re-
Asi!nacin de valores en LISP
Asi!nacin de valores en LISP
(e"erencias
(e"erencias

*anual Introductorio al len!uaje LISP


*anual Introductorio al len!uaje LISP
)
)
(olando *a!ui+a)
(olando *a!ui+a)

CO**O4 LISP ' A 5entle Introduction to


CO**O4 LISP ' A 5entle Introduction to
S3mbolic Computation2 9avid :ouret-k32
S3mbolic Computation2 9avid :ouret-k32
%66$2 :1e .enjamin0Cummin!s Publis1in!
%66$2 :1e .enjamin0Cummin!s Publis1in!
Inteli!encia Arti"icial #$%&'% Inteli!encia Arti"icial #$%&'% (olando A) *a!ui+a P,re- (olando A) *a!ui+a P,re-

También podría gustarte