( 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) )
(cons (car '(d)) (append (cdr '(d)) '(a)) )
(cons 'd (append '() '(a)) )
(define (append x z)
(cond ((null? x) z)
(else (cons (car x) (append (cdr x) z))) ))
xが空リストでない
新しいappendを駆動(append4回目)
新しいappendの駆動
( append '(d) '(a) )