2015/11/19
SICP 問題 3.18
;; 循環するリストを見つける手続き
(define (cycle? x)
(let recur ((x x)
(record '()))
(cond ((not (pair? x)) #f)
((memq x record) #t)
(else
(or (recur (car x) (cons x record))
(recur (cdr x) (cons x record)))))))