Blame


1 665c255d 2023-08-04 jrmu (defun good-count-pairs (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-count (x)
5 665c255d 2023-08-04 jrmu (cond
6 665c255d 2023-08-04 jrmu ((not (consp x)) 0)
7 665c255d 2023-08-04 jrmu ((gethash x pairs-table) 0)
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-count (car x))
11 665c255d 2023-08-04 jrmu (traverse-count (cdr x))
12 665c255d 2023-08-04 jrmu 1)))))
13 665c255d 2023-08-04 jrmu (traverse-count x))))