-1
(define (element-of-set x lst1)
(cond ((null? lst1) '())
((equal? x (car lst1)) (cons (car lst1) (element-of-set x (cdr lst1))))
(else
(element-of-set x (cdr lst1)))))
(define (helper set1 set2) (append set1 set2))
(define (union-set set1 set2)
(cond ((null? set1) '())
((> (length (element-of-set (car set1) (helper set1 set2))) 1) (cons (car set1) (union-set (cdr set1) (cdr set2))))
((> (length (element-of-set (car set2) (helper set1 set2))) 1) (cons (car set2) (union-set (cdr set1) (cdr set2))))
(else
(append (helper set1 set2) (union-set (cdr set1) (cdr set2))))))
このコードは、2組の和集合を見つけると仮定しています。私は2つのセットを一緒に入れようとしましたが、何度か繰り返していましたが、うまくいきませんでした。これはどのように計画で2組の和集合を作る方法
必須はR5RSで定義されていません。 –
これはR5RSではありませんが、これはRacketです(最初の行を参照)。とにかく、解決策を手作業で更新しました。是非、出力リストを作成するときに 'append'と' length'を使わないでください。解決策を書くのにはるかに良い方法があります。 –
入力すると(union-set '(1 2 3)'(2 1 5 6))、それは私に(2 1 5 6)を与えます。しかし、3が出力に含まれている必要があります。 –