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

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 'c (append '(d) '(a)) )

(cons 'c '(d a) )

'(c d a )

(define (append x z)

(cond ((null? x) z)

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

新しいappendの駆動

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

( append '(c d) '(a) )の評価は'(c d a)