Está en la página 1de 18

Lenguaje LISP Objetosbsicos:

S-exp resio n es: - to m o s Sm b o lo s. N m eros. Cadena de caracteres. -Listas tom os: se clasifican en: Sm bolos : cadenas continuas de caracteres (conteniendo al m enos un carcter no n u m rico ).ejem p lo : A G U A , A 12, VA R -A U X , etc. , so n sm b o lo s. N m e r o s: m anipula nm eros enteros sobre 16 bits (perm itiendo calcular en el intervalo [ ], i.e. [-32767, 32767]) y nm eros flotantes sobre 128 bits (perm itiendo calcular en el intervalo [-1.0F+38, 1.0F+38]). Cadena de caracteres : U n a c a d e n a d e c a r a c t e r e s e s u n a s u c e s i n d e c a r a c t e r e s , c o n o s in huecos, que com ienza y term ina por dobles com illas. Por ejem plo, "A 1 23" es una cadena de caracteres. Listas: U n a lis t a e s u n a s u c e s i n o r d e n a d a , p o s ib le m e n t e v a c a , d e o b je t o s . S in t c t ic a mente,se com pone de un parntesis abierto, objetos separados por huecos y un parntesis cerrado. Por ejem plo: (a 1 b), (), (a (b (c))) son listas. Funcionam iento bsico del intrprete Evaluacin de los tom os El valor de un nm ero es el propio nm ero. El valor de un sm bolo es: o E l n m e r o q u e t e n g a a s ig n a d o , s i a c t a c o m o v a r ia b le n u m r ic a ; la S - e x p r e s i n q u e t e n g a a s ig n a d a , e n c a s o c o n t r a r i o . El valor de una cadena de caracteres es la propia cadena. Evaluacin de las listas Las listas se interpretan com o llam adas a funciones. El prim er elem ento es el nom bre de la funcin y el resto son los argum entos. Por ejem plo: la lista (+ 2 3), se interpreta com o la funcin + actuando sobre 2 y 3.

Predicados: Valores lgicos:

N I L : S u v a lo r e s N I L y r e p r e s e n t a lo falso . P u e d e e s c r ib ir s e c o m o ( ) . T: Su valor es T y representa lo verdadero . Predicados de tipos (N U LL s) : devuelve T, si s es N IL y N IL, si no. ( A T O M s ) : D e v u e lv e T , s i s e s u n t o m o y N I L , s i n o . (ATOM12)--->T ( A T O M 'A B C ) - - - > T (ATOM"AB")--->T (ATOMA)--->ERROR ( A T O M '( A B ) ) - - - > N I L (ATOMNIL)--->T ( S Y M B O L P s ) : D e v u e lv e T , s i s e s u n s m b o lo y N I L , s i n o lo e s . (SYMBOLP12)--->NIL ( S Y M B O L P 'A B C ) - - - > T (SYMBOLP"AB")--->NIL (SYMBOLPA)--->ERROR ( S Y M B O L P '( A B ) ) - - - > N I L (SYM BO LP N IL) ---> T ( N U M B E R P s ) : D e v u e lv e T , s i s e s u n n m e r o y N I L , s i n o lo e s . (NUMBERP123)--->T (N U M BERP 'A ) ---> N IL (SETQ A 3) ---> 3 (NUMBERPA)--->T ( C O N S P s ) : D e v u e lv e T , s i s e s u n a lis t a n o v a c a y N I L , s i n o lo e s . (CONSP23)--->NIL ( C O N S P '( A B ) ) - - - > T (CO N SP ()) ---> N IL

( L I S T P s ) : D e v u e lv e T , s i s e s u n a lis t a y N I L , s i n o lo e s . (LISTP 23) ---> N IL

(LISTP '(A B)) ---> T (LISTP ()) ---> T Predicados de igualdad ( E Q s 1 s 2 ) : D e v u e lv e T s i s 1 y s 2 s o n e l m is m o s m b o lo y N I L e n c a s o c o n t r a r io . (EQ 'LISP 'LISP) ---> T ( E Q 'L I S P 'L I S A ) - - - > N I L ( E Q ( C A R '( A B C ) ) 'A ) - - - > T (EQ33.0)--->NIL ( E Q ( C O N S 'A '( B C ) ) ( C O N S 'A '( B C ) ) ) - - - > N I L ( E Q U A L s 1 s 2 ) : D e v u e lv e T , s i s 1 y s 2 t ie n e n e l m is m o v a lo r y N I L , s i n o t ie n e n e l m is m o valor. (EQUAL3(+12))--->T Nmeros Los nm eros adm itidos son enteros(p.e.: 123), decim ales(p.e.: 123.456) y flotantes(p.e.: 1.23F+02). O p e r a c io n e s n u m r ic a s : Sum a: (+ n1 n2 n3 ... n N ) : d e v u e lv e e l v a lo r d e la s u m a n 1 + n 2 + n 3 + ... + n N . S i N = 0 , d a 0 . Ejem plos: (+) ---> 0 (+ 3) ---> 3 (+ 3 7 5) ---> 15 (+ 32000.0 32000) ---> 64000.0 (1+ n) es equivalente a (+ n 1). R e s t a : ( - n 1 n 2 . . . n N ) : D e v u e lv e e l v a lo r d e n 1 - n 2 - ... - n N . S i N = 1 , d a - n 1 . E je m p lo : (- 3) ---> -3 (- 123 7 5) ---> 111 (1- n) es equivalente a (- n 1).

V a lo r A b s o lu t o : ( A B S n ) : D e v u e lv e e l v a lo r a b s o lu t o d e n . (ABS3)--->3

(A BS -3.6) ---> 3.6 ( * n 1 n 2 . . . n N ) : D e v u e lv e e l v a lo r d e l p r o d u c t o n 1 . n 2 ... n N . S i N = 0 , d a 1 . (*) ---> 1 (* 3) ---> 3 (* 3 7 5) ---> 105 (* 32000.0 32000) ---> 1.024F+09 (/ n1 n2) : Devuelve el valor de dividir n1 por n2. Ejem plos: (/ 6 2) ---> 3.0 (/ 5 2) ---> 2.5 ( / n ) : E s lo m is m o q u e ( / 1 n ) ; e s d e c ir , d e v u e lv e e l in v e r s o d e n . E je m p lo s : (/ 2) ---> 0.5 (/ 0.5) ---> 2.0 ( M O D n 1 n 2 ) : D e v u e lv e e l r e s t o d e la d iv is i n e n t e r a d e n 1 p o r n 2 . E je m p lo s : (MOD72)--->1 ( M A X n 1 . . . n N ) : D e v u e lv e e l m a y o r v a lo r d e n 1 , . . . , n N . E je m p lo s : (MAX3)--->3 (MAX123452)--->5 (MAX-2.370)--->7.0 (M IN n1 ... nN ) : Devuelve el m enor valor de n1,..., nN . Ejem plos: (M IN 3) ---> 3 (M IN 1 2 3 4 5 2) ---> 1 (M IN -2.3 7 0) ---> -2.3 Com paraciones num ricas: ( = n 1 . . . n N ) : D e v u e lv e T s i lo s v a lo r e s d e t o d o s lo s a r g u m e n t o s s o n ig u a le s ; N I L , e n c a so c o n tra rio . E je m p lo s: (= 10 (+ 3 7)) ---> T (= 2 2.0 (+ 1 1)) ---> T (=123)--->NIL (=121)--->NIL

( / = n 1 . . . n N ) : D e v u e lv e T s i lo s v a lo r e s d e t o d o s lo s a r g u m e n t o s s o n d is t in t o s ; N I L , e n caso c o n tra rio . E je m p lo s:

(/=10(+37))--->NIL (/=22.0(+11))--->NIL (/= 1 2 3) ---> T (/=121)--->NIL ( > = n 1 . . . n N ) : D e v u e lv e T s i n 1 > = ... > = n N ; N I L , e n o t r o c a s o . E je m p lo s : (>= 4 3 3 2) ---> T (>=4335)--->NIL ( > n 1 . . . n N ) : D e v u e lv e T s i n 1 > ... > n N ; N I L , e n o t r o c a s o . (> 4 3 2 1) ---> T (>4332)--->NIL ( < = n 1 . . . n N ) : D e v u e lv e T s i n 1 < = ... < = n N ; N I L , e n o t r o c a s o . E je m p lo s : (<= 2 3 3 4) ---> T (<=5334)--->NIL ( > n 1 . . . n N ) : D e v u e lv e T s i n 1 < ... < nN ; N IL, en otro caso. Ejem plos: (< 1 2 3 4) ---> T (<1334)--->NIL ( Z E R O P n ) e s e q u iv a le n t e a ( = n 0 ) . ( P L U S P n ) e s e q u iv a le n t e a ( > n 0 ) . ( M I N U S P n ) e s e q u iv a le n t e a ( < n 0 ) . ( E V E N P n ) d e v u e lv e T s i n e s p a r ; N I L , e n c a s o c o n t r a r io . ( O D D P n ) d e v u e lv e T s i n e s im p a r ; N I L , e n c a s o c o n t r a r io . Las funciones trigonom tricas y m atem ticas (SIN n) : Devuelve el seno de n radianes. ( C O S n ) : D e v u e lv e e l c o s e n o d e n r a d ia n e s . ( T A N n ) : D e v u e lv e la t a n g e n t e d e n r a d ia n e s . ( A S I N n ) : D e v u e lv e e l a r c o s e n o d e n ( e x p r e s a d o e n r a d ia n e s ) . ( A C O S n ) : D e v u e lv e e l a r c o c o s e n o d e n ( e x p r e s a d o e n r a d ia n e s ) . ( A T A N n ) : D e v u e lv e e l a r c o t a n g e n t e d e n ( e x p r e s a d o e n r a d ia n e s ) . (EXP n) : Devuelve . (EXPT n1 n2) : Devuelve . ( L O G n ) : D e v u e lv e e l lo g a r it m o n e p e r ia n o d e n .

( L O G n 1 n 2 ) : D e v u e lv e e l lo g a r it m o d e n 1 e n la b a s e n 2 . (SQRT n) : Devuelve la raz cuadrada de n.

Las funciones de bsqueda en las listas ( C A R l) : D e v u e lv e e l p r im e r e le m e n t o d e l, s i l n o e s N I L ; N I L , s i l e s N I L . E je m p lo s : ( C A R '( A B C ) ) - - - > A (CA R ()) ---> N IL ( C A R 'A ) - - - > E R R O R ( F I R S T l) : d e v u e lv e e l p r im e r e le m e n t o d e l. E s e q u iv a le n t e a C A R . E je m p lo s : (FIRST '(A B C)) ---> A (FIRST ()) ---> N IL ( C D R l) : D e v u e lv e la lis t a f o r m a d a p o r lo s e le m e n t o s d e l, e x c e p t o e l p r im e r o , s i l n o e s N IL; N IL si l es N IL. Ejem plos: (CDR '(A B C)) ---> (B C) (CDR ()) ---> N IL ( C D R 'A ) - - - > E R R O R (REST l) : Devuelve la lista form ada por los elem entos de l, excepto el prim ero, si l no es N IL; N IL si l es N IL. Es equivalente a CDR. Ejem plos: (REST '(A B C)) ---> (B C) (REST ()) ---> N IL ( C . . . R l) : E s u n a c o m b in a c i n d e la s f u n c io n e s C A R y C D R h a s t a 4 n iv e le s . E je m p lo s : ( C A D R '( A B C ) ) - - - > B ( S E C O N D l) : D e v u e lv e e l s e g u n d o e le m e n t o d e l. E s e q u iv a le n t e a C A D R . E je m p lo s : ( S E C O N D '( A B C D ) ) - - - > B ( T H I R D l) : D e v u e lv e e l t e r c e r e le m e n t o d e l. E s e q u iv a le n t e a C A D D R . (THIRD '(A B C D)) ---> C ( L A S T s ) : D e v u e lv e la lis t a f o r m a d a p o r e l lt im o e le m e n t o d e s , s i s e s u n a lis t a y s, si s no es una lista. Ejem plos: ( L A S T '( A B C ) ) - - - > ( C ) (LAST23)--->23 ( L E N G T H l) : D e v u e lv e e l n m e r o d e e le m e n t o s d e l. E je m p lo s : ( L E N G T H '( A ( B C ) D ) ) - - - > 3

Las funciones de lectura ( R E A D ) : L e e u n o b je t o d e l c a n a l d e e n t r a d a y d e v u e lv e d ic h o o b je t o . E je m p lo s :

*(SETQL(CDR(READ))) (B C) *L (B C) ( R E A D - L I N E ) : L e e u n a ln e a d e l c a n a l d e e n t r a d a y d e v u e lv e d ic h o o b je t o . Funciones de escritura: ( P R I N T s ) : E s c r ib e e n u n a n u e v a l n e a e l v a lo r d e s y d e v u e lv e d ic h o v a lo r . E je m p lo : *(PRINT(+23)) 5 5 ( P R I N 1 s ) : E s c r ib e e l v a lo r d e s , u s a n d o c a r a c t e r e s d e c o n t r o l. E je m p lo : *(PRIN1"A") "A " "A " ( F O R M A T T C A D A R G 1 . . . A R G N ) : E s c r ib e la c a d e n a e n C A D e n la p a n t a lla y d e v u e lv e N IL. C A D p u e d e c o n t e n e r c a r a c t e r e s d e c o n t r o l. A lg u n o d e e llo s s o n l o s s ig u ie n t e s : ~% nueva lnea. ~ D s i e l a r g u m e n t o e s u n n m e r o d e c im a l. ~AsielargumentoesuncarcterASCII. ~ B s i e l a r g u m e n t o e s u n n m e r o b in a r io . ~ O s i e l a r g u m e n t o e s u n n m e r o o c t a l. ~ X s i e l a r g u m e n t o e s u n n m e r o h e x a d e c im a l. E je m p lo s: *(FORMATT"~%LINEA1~%LINEA2) LINEA1 LINEA2 N IL *(FORMATT"~%ELCUADRADODE~DES~D"3(*33)) ELCUADRADODE3ES9 N IL

* (SETQ L '(A B C)) (A B C)

*(FORMATT"~%LALONGITUDDELALISTA~AES~D"L(LENGTHL)) L A L O N G I T U D D E L A L I S T A '( A B C ) E S 3 N IL *(FORMATT"~%10ENBINARIOES~BYENOCTALES~O"1010) 10ENBINARIOES1010YENOCTALES12 N IL Aplicaciones: CL-USER1>(+269) 17 CL-USER2>(-1535) 7 CL-USER3>(*246) 48 CL-USER4>(/183) 6 C L - U S E R 5 > ( s e t q m i- e d a d 1 2 ) 12 C L - U S E R 6 > m i- e d a d 12 C L - U S E R 7 > ( m in 9 5 8 ) 5 CL-USER8>(max958) 9 C L - U S E R 9 > ( c o n s 2 n il) (2) C L - U S E R 1 0 > ( c o n s 4 ( c o n s 6 n il) ) (4 6) C L - U S E R 1 1 > ( c o n s 'a ( c o n s 'b ( c o n s '( c d e ) n il) ) ) (A B (C D E))

C L - U S E R 1 2 > ( lis t 'a n a 'r e b e c a 'm a r ia 'lo u r d e s ) (ANAREBECAMARIALOURDES)

C L - U S E R 1 3 > ( lis t 'p e d r o '( p e p e a n t o n io lu c a s ) ) (PEDRO(PEPEANTONIOLUCAS)) C L - U S E R 1 4 > ( a p p e n d '( a b c ) '( d e f ) '( g h i) ) (A B C D E F G H I) CL- U S E R 1 5 > ( lis t a 1 ( / m i- e d a d 2 ) b 5 ) (A 1 6 B 5) C L - U S E R 1 6 > ( f ir s t '( a n a m a r ia p a u la ) ) ANA C L - U S E R 1 7 > ( f ir s t '( ( m p ) a b ) ) (M P) C L - U S E R 1 9 > ( r e s t '( a b c d ) ) (B C D) C L - U S E R 2 0 > ( r e s t '( n ( ( a p ) q ( r s ) ) ) ) (((A P) Q (R S))) C L - U S E R 2 1 > ( c a r '( ( m p ) a b ) ) (M P) C L - U S E R 2 2 > ( c d r '( a b c d ) ) (B C D) C L - U S E R 2 3 > ( c a d a d r '( n ( ( a p ) q ( r s ) ) ) ) Q

También podría gustarte