(setq Nodos '(a b c d e f)) (setq Conexion '((i a) (i c) (a b) (a c) (c d) (b d) (d f) ) ) (setq Ruta nil) (defun inicia(inicio final) (if (Es_Adyacente inicio final) (setq Ruta (list inicio final)) (extiende inicio final) ) (Salida) ) (defun extiende (X Y) (print 'extender) ) (defun Salida () (print "Ya es una ruta correcta") ) (defun Es_Adyacente(X Y) (setq Lazo (list X Y)) ; se genera como lazo (setq Resp nil) (dolist (Par Conexion) ; (print Par) (if (Iguales Par lazo) (setq Resp t) ) ) Resp ) (defun Iguales (L1 L2) (if (and (or (eq (car L1) (car L2)) (eq (car L1) (cadr L2))) (or (eq (cadr L1) (car L2)) (eq (cadr L1) (cadr L2))) ) t nil ) )