Está en la página 1de 8

;;Asigancion: Para asignar valores se utiliza tambien los comandos

CL-USER 1 > (setf x 21)


21

CL-USER 2 > (setf g '(hola))


(HOLA)

CL-USER 3 > (setf ma 213)


213

CL-USER 4 > (setf n 23)


23

CL-USER 5 > (setf m 48)


48

CL-USER 6 > (setf sum '(+ m n))


(+ M N)

CL-USER 7 > (setf su (+ m n))


71

CL-USER 8 > (setf (symbol-plist 'pepe) '(edad 40 hijos (pepito pepita) padres
(maria fernando)))
(EDAD 40 HIJOS (PEPITO PEPITA) PADRES (MARIA FERNANDO))

CL-USER 9 > (get 'pepe 'edad)


40

CL-USER 10 > (get 'pepe 'hijos)


(PEPITO PEPITA)

CL-USER 11 > (get 'pepe 'padres)


(MARIA FERNANDO)

CL-USER 12 > (get 'pepe 'direccion)


NIL

;;ATOMS RESERVADOS

CL-USER 13 > NIL


NIL

CL-USER 14 > T
T

;;PARA EVALUAR UNA LISTA SE INVOCA A UNA FUNCION DE LA FORMA SIGUIENTE

CL-USER 15 > (+ 47 15 21)


83

CL-USER 16 > (- 47 58 21)


-32
CL-USER 17 > (* 12 14 2)
33

CL-USER 18 > (setf n 24)


24

CL-USER 19 > (sqrt n)


4.8989797

CL-USER 20 > (- 21 25 n)
-28

CL-USER 21 > (+ 28 14 12 17 n)
95

CL-USER 22 > (max 24 2325 556 234 2)


2325

CL-USER 23 > (* 12 14 2)
336

CL-USER 24 > (min 32 43 56 n)


24

CL-USER 25 > (max 12 13 44)


44

CL-USER 26 > (expt n 2)


576

CL-USER 27 > (expt 12 3)


1728

CL-USER 28 > (expt 16 0.5)


4.0

CL-USER 29 > (expt 23 2.3)


1355.1082

CL-USER 30 > (expt 5(/ 25 5))


3125

CL-USER 31 > (expt 2(* 3 4))


4096

CL-USER 32 > (- 12(+ 2 8 6))


-4

;;COMBINACION DE FUNCIONES FIRTS Y REST

CL-USER 33 > (first '(12 34 53))


12

CL-USER 34 > (first '((hola) mundo))


(HOLA)

CL-USER 35 > (caddr '(papel (dinero) aire agua))


AIRE
CL-USER 36 > (cadr '(papel (dinero) aire agua))
(DINERO)

CL-USER 37 > (rest '(papel (dinero) aire agua))


((DINERO) AIRE AGUA)
;;SEGUNDO TERMINO
CL-USER 38 > (first(rest '(12 34 54 65)))
34
;TERCER TERMINO
CL-USER 39 > (first(rest(rest '(cual es tu nombre amigo))))
TU

;;EL PREDICADO ENDP NOS INFORMA DE SI UNA LISTA ES VACIA (ESTO ES IGUAL A NIL)

CL-USER 40 > (endp '())


T

CL-USER 41 > (endp '(hola mundo))


NIL

CL-USER 42 > (endp '(first(rest(first '(hola amigo como estas)))))


NIL

CL-USER 43 > (endp '(rest '(1)))


NIL

CL-USER 44 > (endp (rest '(1)))


T

CL-USER 45 > (endp nil)


T

;;EQ (EQ EXP1 EXP2) devuelve T si EXP1 y EXP2 son el mismo simbolo y NIL en caso
contrario.

CL-USER 46 > (eq 'lisp 'lisp)


T

CL-USER 47 > (eq 'lisp 'lisa)


NIL

CL-USER 48 > (eq 5 6)


NIL

CL-USER 49 > (eq (car '(a b c)) 'a)


T

CL-USER 50 > (eq 3 3.0)


NIL

CL-USER 51 > (eq (cons 'a '(b c)) (cons 'a '(b c)))
NIL
CL-USER 52 > (eq 'hola 'hello)
NIL

CL-USER 53 > (eq (+ 4 5)(+ 5 4))


T

;;La funcion (REVERSE L) devuelve la lista obtenida escribiendo los elementos de L


en orden inverso.

CL-USER 54 > (setq exp '(hola))


(HOLA)

CL-USER 55 > (reverse exp)


(HOLA)

CL-USER 56 > (setf exp '(H O L A))


(H O L A)

CL-USER 57 > (reverse exp)


(A L O H)

CL-USER 58 > (reverse '(5 4 3 2 1))


(1 2 3 4 5)

CL-USER 59 > (setq nombre '(J O S E (A R E L A)))


(J O S E (A R E L A))

CL-USER 60 > (reverse nombre)


((A R E L A) E S O J)

CL-USER 61 > (setq li '(1 3 4 5))


(1 3 4 5)

CL-USER 62 > (reverse li)


(5 4 3 1)

;;(CONS EXPRESION LISTA) devuelve una lista cuyo CAR es EXPRESION y su CDR es
LISTA, el valor de la cola es;;NIL

CL-USER 77 : 4 > (cons 5 nil)


(5)

CL-USER 78 : 4 > (cons 'a '(b c d))


(A B C D)

CL-USER 79 : 4 > (cons 14(cons 7 nil))


(14 7)

CL-USER 80 : 4 > (cons (- 5 3) '(es un numero))


(2 ES UN NUMERO)

CL-USER 82 : 5 > (cons '(a b) '(c d))


((A B) C D)

CL-USER 83 : 5 > (cons 'jb (cons 0(cons 0(cons 7 nil))))


(JB 0 0 7)
CL-USER 84 : 5 > (cons nil nil)
(NIL)

CL-USER 85 : 5 > (cons (car '(J O)) (cdr '(S E)))


(J E)

;;AL USAR CONS CON UN ATOM QUE NO ES RESERVADO PRODUCIRA UN ERRROR, PARA QUE NO
OCURRA
;;ESTO SE TIENE QUE UTILIZAR APOSTROFE(')

CL-USER 86 > (cons 'm nil)


(M)

CL-USER 87 > (cons 'x 'y)


(X . Y)

CL-USER 88 > (cons 'l(cons 'm nil))


(L M)

CL-USER 89 > (cons 5(cons 6(cons 7 nil)))


(5 6 7)

CL-USER 90 > (cons 'H '(O L A))


(H O L A)

;;LIST Y APPEND SON FUNCIONES QUE TOMAN CUALQUIER CANTIDAD DE ARGUMENTOS.


;;(APPEND L1 ... LN) devuelve una copia de la concatenacion de las listas
;;(LIST EXP1 ... EXPN) devuelve una lista cuyos elementos son los valores de las
expresiones
;;append es necesario que al declarar los argumentos vayan entre parentesis
;;list solo es necesario cuando algunos de sus argumentos tiene 2 o mas elementos

CL-USER 91 > (append '(a b) '(c d))


(A B C D)

CL-USER 92 > (append '(1 2) '(3 4) '(5 6 7))


(1 2 3 4 5 6 7)

CL-USER 93 > (append (list '* (+ 2 3)) '(4 5))


(* 5 4 5)

CL-USER 94 > (append nil '(x y))


(X Y)

CL-USER 95 > (list '(a b c))


((A B C))

CL-USER 96 > (list 'a 'b 'c)


(A B C)

CL-USER 97 > (list 'a 1 'b 3)


(A 1 B 3)

CL-USER 98 > (setq l (list 'el 'numero 3))


(EL NUMERO 3)

CL-USER 99 > (list (car l) 'digito (caddr l))


(EL DIGITO 3)

CL-USER 100 > (list nil)


(NIL)

CL-USER 101 > (append '(m n o p))


(M N O P)

CL-USER 102 > (append '(x) '(y) '(z))


(X Y Z)

CL-USER 103 > (list '* (+ 9 8) '(/ x 2))


(* 17 (/ X 2))

;;DIFERENCIA DE CONST, LIST Y APPEND:

CL-USER 104 > (CONS '(A B) '(C D))


((A B) C D)

CL-USER 105 > (LIST '(A B) '(C D))


((A B) (C D))

CL-USER 106 > (APPEND '(A B) '(C D))


(A B C D)

;;LIST: SI UNO DE SUS ARGUMENTOS ES OPERACION NO ES NECESARIO COLOCAR APOSTROFE

CL-USER 107 > (list 'p 'q 4 (sqrt 9) 345)


(P Q 4 3.0 345)

CL-USER 108 > (list 'a)


(A)

CL-USER 109 > (list (expt 4 2) (sqrt 36) (+ 8 4) (* 8 2))


(16 6.0 12 16)

;;LAST DEVUELVE EL ULTIMO ELEMENTO DE LA LISTA, SI LA LISTA ES DE NIL DEVUELVE NIL

CL-USER 110 > (last '(a b c d e f))


(F)

CL-USER 111 > (last '(1 2 3 4 5 6))


(6)

CL-USER 112 > (last '(a (b c) (d e)))


((D E))

;;LENGTH DEVUELVE EL NUMERO DE ELEMENTOS DE LA LISTA


CL-USER 113 > (length '(a (b c) d (e f)))
4

CL-USER 114 > (length '(1 2 3 4 5))


5

CL-USER 115 > (length '((* 5 9)))


1

CL-USER 116 > (setq sr '(h o l a))


(H O L A)

CL-USER 117 > (length sr)


4

;;LISTP DEVUELVE T SI EL ARGUMENTO ES UNA LISTA SINO DEVUELVE NIL

CL-USER 118 > (listp '(m n))


T

CL-USER 119 > (listp nil)


T

CL-USER 120 > (LIST '(A) '(B) '(C))


((A) (B) (C))

CL-USER 121 > (listp (car '(a b c)))


NIL

CL-USER 122 > (listp 'a)


NIL

CL-USER 123 > (listp '(1 2 3 4 5))


T

;;DEFINIENDO FUNCIONES
;;en lisp podemos declarar funciones para modulizar progranas
;;y hacerlos mas legibles en la medida de lo posible, reutilizando asi codigo
escrito
;;y separando distintas partes del problema a representar en modulos.

CL-USER 124 > (defun mult (x y)


(* x y))
MULT

CL-USER 125 > (mult 2 3)


6

CL-USER 126 > (defun suma (a b)(+ a b))


SUMA

CL-USER 127 > (suma 23 34)


57

;; FUNCION IF
CL-USER 128 > (IF (=(SETQ A 4)4)'V 'F)
V

CL-USER 129 > (IF T 1 2)


1

CL-USER 130 > (IF NIL 2 3)


3

CL-USER 131 > (IF (= A 5)(+ 4 4)(* 4 4))


16

CL-USER 132 > (defun media(a b)


(format t "La media es: ")
(/(+ a b)2))
MEDIA

CL-USER 133 > (media 4 8)


La media es:
6

CL-USER 134 > (defun suma(a b)


(format t "La suma es: ")
(+ a b))
SUMA

CL-USER 135 > (suma 4 8)


La suma es:
12

CL-USER 136 > (defun pais(p)


(case p
(madrid '(espa�a))
(roma '(italia))
(paris '(francia))
(otherwise '(pais no existe))))
PAIS

CL-USER 137 > (pais 'madrid)


(ESPA�A)

CL-USER 138 > (pais 'lima)


(PAIS NO EXISTE)

También podría gustarte