schemeのdatum label
datum labelを使うとschemeの循環構造を表記できる。
(define x (list 1 2 3 )) (set-cdr! (cddr x) x) ;#0=(1 2 3 . #0#) (define y (list 4 x 6)) (set-cdr! (cddr y) y) ;#0=(4 #1=(1 2 3 . #1#) 6 . #0#) (define z (quote #0=(1 2 . #0#))) ;#0=(1 2 . #0#)
datum labelを使うとschemeの循環構造を表記できる。
(define x (list 1 2 3 )) (set-cdr! (cddr x) x) ;#0=(1 2 3 . #0#) (define y (list 4 x 6)) (set-cdr! (cddr y) y) ;#0=(4 #1=(1 2 3 . #1#) 6 . #0#) (define z (quote #0=(1 2 . #0#))) ;#0=(1 2 . #0#)