(wat-aro)

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

SICP 問題 3.16

ポインタが同じ構造を指していた場合に重複して数えてしまう.
さらに,循環リストの場合は結果が返ってこない.

(define (count-pairs x)
  (if (not (pair? x))
      0
      (+ (count-pairs (car x))
         (count-pairs (cdr x))
         1)))