最初のページ 戻る 次へ 最後のページ

append2回目(巻き取り段階)

( append '(b c d) '(a) )

(cons (car '(b c d)) (append (cdr '(b c d)) '(a)) )

(cons 'b c d (append '(b c d) '(a)) )

(define (append x z)

(cond ((null? x) z)

(else (cons (car x) (append (cdr x) z))) ))

xが空リストでない

新しいappendを駆動(append2回目)

(cons (car '(c d)) (append (cdr '(c d)) '(a)) )

(cons 'c (append '(d) '(a)) )

(define (append x z)

(cond ((null? x) z)

(else (cons (car x) (append (cdr x) z))) ))

xが空リストでない

新しいappendを駆動(append3回目)

新しいappendの駆動

( append '(c d) '(a) )