Hatena::Groupsicp

SICP読書記

 | 

2009-11-20

問題2.62

 問題2.62 - SICP読書記 を含むブックマーク はてなブックマーク -  問題2.62 - SICP読書記



(define (union-set set1 set2)
	(cond ((null? set1) set2)
		  ((null? set2) set1)
		  (else  (let ((x1 (car set1))
					   (x2 (car set2)))
				   (cond ((eq? x1 x2) 
						  (cons x1 
								(union-set (cdr set1) (cdr set2))))
						 ((< x1 x2)
						  (cons x1 (union-set (cdr set1) set2)))
						 (else 
						  (cons x2 (union-set set1 (cdr set2)))))))))

(print (union-set '(1 3 5 7 9) '(0 1 2 4 7)))
;; ->  (0 1 2 3 4 5 7 9)

要するにマージソートかつuniqueしろと言ってますよね。

 |