定义:
;;; 13-make-cycle.scm
(define (make-cycle x)
(set-cdr! (last-pair x) x)
x)
测试:
1 ]=> (load "13-make-cycle.scm")
;Loading "13-make-cycle.scm"... done
;Value: make-cycle
1 ]=> (define z (make-cycle (list 'a 'b 'c)))
;Value: z
1 ]=> z
a b c a b c a b c a b c a b c ;...
盒子图形:
+-----------------------+
| |
v |
z ----> [*]----> [*]----> [*]----+
| | |
v v v
'a 'b 'c