Code Review

Compare your solutions

    #| BEGIN (Write your solution here) |#
(define (count-pairs x)
  (let ((visited '()))
    (define (traverse x)
      (cond ((not (pair? x)) 0)
            ((memq x visited) 0)
            (else
             (set! visited (cons x visited))
             (+ (traverse (car x))
                     (traverse (cdr x))
                     1))))
    (traverse x)))

#| END |#