; ========================================= ; Inserta numeros acomodandolos en la lista ; Fecha: Junio 13 del 2007 ; Autor: YO ; copyright: LC - FIE - UMSNH ; ========================================= (defun Muestra (LT) (dolist (X LT) (print X) ) ) (defun Inserta (Atomo Lista) (setq L1 NIL) (setq L2 lista) (dotimes (x (length lista)) (setq elemento (nth x lista)) (cond ;;;;;;;;;;IF ((> Atomo elemento) (setq L1 (append (list elemento) L1)) ; principio (setq L2 (cdr L2)) ; resto ;;(setq Lista (cdr Lista)) ) ;;;;;;;;;;ELSE ((<= Atomo Elemento) (setq L2 (append L1 (append (list Atomo) L2))) (return L2) ) ) ) ) (defun LeeDato (Lista) (setq Atomo (read)) (cond ( (eql NIL Lista) (setq Lista (list Atomo)) ; if ) (T (setq Lista (Inserta Atomo Lista)) ; else ) ) Lista ) (defun ciclo () (setq cont 1) ; variable del ciclo (setq LT NIL) ; lista inicial (loop (if (>= cont 9) (return 9)) (setq LT (LeeDato LT)) ; Pide dato y actualiza LT (PRInt LT) (setf cont (1+ cont)) ) (Muestra LT) ) (defun Inicia () (ciclo) 'FIN )