xsetf (setf {sitio valor}* ) Asigna a sitio el valor que se ponga. Si sitio es una variabla se comporta como setq Si se trata de una funcion de acceso (como car, cdr, etc.) se asigna al resultado de esa funcion el valor dado. setq (setq {variable valor}*) Forma especial que asigna valores a una o varia variables. Devuelve el resultado de la ultima asignacion. list (list argumentos) Funcion que construye y devuelve una lista con sus argumentos ' (apostrofe) devuelve su argumento sin evaluar dolist (dolist variable Lista [resultado]) Hace iteraciones sobre lista ejemplo: (dolist (ele Lista 'fin)(print ele)) car (car Lista) Devuelve el primer elemento de una lista cdr (cdr Lista) Devulve el resto de una lista nthcdr (nthcdr n Lista) Devulve el resultado de hacer tantos cdr como se indiquen cons (cons 1er_elemento Resto_de_la_Lista) Crea y devuelve una nueva celda CONS. Si el 2o. elemento no es una lista se obtiene un par con punto eql (eql objeto1 objeto2) Comprueba si 2 objetos son identicos o son numeros del mismo tipo y con el mismo valor, o caracteres que representan el mismo caracter. equal (equal objeto1 objeto2) Predicado que comprueba si dos objetos poseen estructura similar null (null objeto) Predicado que devuelve true si el objeto es nil y vis. append (append Lista1 Lista2) Une a 2 listas en una sola length (length Lista) Regresa el numero de elementos de Lista zerop (zerop obj) Comprueba si un objeto es el cero mapcar (mapcar funcion lista &rest mas-listas) ejemplo: (mapcar #'second '((a b c) (d e f) (g h i))) Aplica una funcion a los elementos de una lista o conjunto de listas if (if test forma-then &rest formas-else) ejemplos: (setf x 'a) (if (eql x 'a) 'cierto 'falso) case ejemplos: (defun funcion1 (arg) (case arg (libro (format t "~%es un libro")) ((casa puerta) (format t "~%es puerta o casa")))) string-upcase (string-upcase var) convierte el contenido de var a mayusculas string-downcase (string-downcase var) convierte el contenido de var a minusculas __________________ CICLOS ================== ejemplo de "do" ; CICLOS (defun ciclo (numero) (do ((n 1 (1+ n))) ; variables ((> n numero) 'fin); condiciOn fin del ciclo (print n) ) ) ejemplo de "dolist" ; UNA ITERACION POR CADA ELEMENTO DE LA LISTA (defun ciclo (lista) (dolist (elemento lista in) (print elemento) ) ) ejemplo de "dotimes" ; UN NUMERO DETERMINADO DE ITERACIONES (defun ciclo (numero) (dotimes (n numero 'fin) (print n)) ) ejemplo de "loop" ; REPETIR ITERACIONES HASTA ENCONTRAR UNA FORMA DE SALIDA (defun contar-hasta (n) (let ((cont 1)) (loop (if (>= cont n) (return n)) (print cont) (setf cont (1+ cont)))) ) ___________________ ARREGLOS =================== arreglo (make-array '(50 50):initial-element 0) CREA UN ARREGLO DE 50x50 LLENO DE CEROS (setf Arreglo (make-array '(2 3))) CREA UN ARREGLO DE 2x3 (aref Arreglo 1 2) MUESTRA AL ELEMENTO (2, 3) DEL ARREGLO arreglo de bits (setf AdeB (make-array '(2 4):initial-contents '((1 0 1 1) (0 0 1 1)) :element-type 'bit)) CREA UN ARREGLO DE BITS DE 2x4 (aref AdeB 0 1) OBTIENE AL ELEMENTO (0, 1) DEL ARREGLO (setf (aref AdeB 0 1) 1) MODIFICA AL ELEMENTO (0, 1) CON UN uno