Blame


1 665c255d 2023-08-04 jrmu (defun has-loop? (x)
2 665c255d 2023-08-04 jrmu (let ((pairs-table (make-hash-table :test #'eq)))
3 665c255d 2023-08-04 jrmu (labels (
4 665c255d 2023-08-04 jrmu (traverse-list (x)
5 665c255d 2023-08-04 jrmu (cond
6 665c255d 2023-08-04 jrmu ((null x) nil)
7 665c255d 2023-08-04 jrmu ((gethash x pairs-table) t)
8 665c255d 2023-08-04 jrmu (t
9 665c255d 2023-08-04 jrmu (setf (gethash x pairs-table) 1)
10 665c255d 2023-08-04 jrmu (traverse-list (cdr x))))))
11 665c255d 2023-08-04 jrmu (traverse-list x))))