diff --git a/distances.lisp b/distances.lisp index 60a5e25..0d1c37a 100644 --- a/distances.lisp +++ b/distances.lisp @@ -37,12 +37,13 @@ (let* ((frontier (list (root-cell d))) (new-frontier ())) (loop while (not (null frontier)) - do (dolist (cell frontier) - (setf new-frontier ()) - (dolist (linked (links cell)) - (when (not (gethash linked (distance-cells d))) - (set-distance d :cell linked :distance (+ 1 (gethash cell (distance-cells d)))) - (setf new-frontier (append `(,linked) new-frontier))))) + do + (setf new-frontier ()) + (dolist (cell frontier) + (dolist (linked (links cell)) + (when (not (gethash linked (distance-cells d))) + (set-distance d :cell linked :distance (+ 1 (gethash cell (distance-cells d)))) + (setf new-frontier (append `(,linked) new-frontier))))) (setf frontier (copy-tree new-frontier)))) (distance-cells d))