(wat-aro)

無職から有職者にランクアップしました

SICP 問題 3.17

任意の構造の異なる対の個数を返すcount-pairsを完成させる.

(define (count-pairs x)
  (define pair-list '())
  (define (recur s)
    (cond ((not (pair? x)) 0)
          ((memq s pair-list) 0)
          (else
           (set! pair-list (cons s pair-list))
           (+ (recur (car x))
              (recur (cdr x))
              1))))
  (recur s))