Gauche本勉強メモ(7日目)

6.5簡単なリスト処理(のつづき)

2つのリストを連結する手続きappend2

(define (append2 a b)
  (if (pair? a)
	  (cons (car a) (append2 (cdr a) b))
	  b))

gosh> (append2 '(1 2 3 4) '(10 9))
(1 2 3 4 10 9)
gosh> (append2 '() '(10 9))
(10 9)
gosh> (append2 '(3) '(10 9))
(3 10 9)
gosh> (append2 '(3) '())
(3)

これでこうなるのはわかるけど、なんでこう書くのかわからない。ちょっと酔ってるから?

今日はここまで。