読者です 読者をやめる 読者になる 読者になる

(wat-aro)

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

SICP 問題 3.19

答え見た.
https://github.com/nomnel/SICP/blob/master/3/19.scm
一歩ずつ進むポインタと二歩ずつ進むポインタが同じになれば循環している.
うまいこと考えてるな.

(define (look-check x)
  (define (check x0 x1)
    (cond ((eq? x0 x1) #t)
          ((null? (cdr x1)) #f)
          ((null? (cddr x1)) #f)
          (else
           (check (cdr x1) (cddr x1)))))
  (if (and (pair? x) (pair? (cdr x)))
      (check (cdr x) (cddr x))
      #f))