SICP問題3.13

make-cycle手続き(教科書で定義)

(define (make-cycle x)
  (set-cdr! (last-pair x) x)
  x)

zの定義

(define z (make-cycle (list 'a 'b 'c)))
z
; #0=(a b c . #0#)

微妙な感じ。z の箱とポインタ図は以下のようになる

  ┌───────┐
  ↓       │
z→□□→□□→□□┘
  ↓  ↓  ↓
  a   b   c 

上記のような構造のため z に対して(last-pair z)を実行すると無限ループする