問題2.65 – SICP(計算機プログラムの構造と解釈)その77
2009年01月21日
問題2.65
問題2.62等で作った、順序づけられたリストによる集合の union-set
、intersection-set
を利用する。
木構造データをリストに変換してから演算を行い、結果のリストを木構造データに変換する。
(define set1 '(1 2 3 4 5)) (define set2 '(2 4 6)) (define tree1 (list->tree set1)) ; (3 (1 () (2 () ())) (4 () (5 () ()))) (define tree2 (list->tree set2)) ; (4 (2 () ()) (6 () ())) (define (union-tree tree1 tree2) (let ((set1 (tree->list tree1)) (set2 (tree->list tree2))) (list->tree (union-set set1 set2)))) (union-tree tree1 tree2) gosh> (3 (1 () (2 () ())) (5 (4 () ()) (6 () ()))) (define (intersection-tree tree1 tree2) (let ((set1 (tree->list tree1)) (set2 (tree->list tree2))) (list->tree (intersection-set set1 set2)))) (intersection-tree tree1 tree2) gosh> (2 () (4 () ()))
計算機プログラムの構造と解釈
posted with amazlet at 08.11.07
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン
ピアソンエデュケーション
売り上げランキング: 6542
ピアソンエデュケーション
売り上げランキング: 6542