Blob


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