(defun set-member (s data) (cond ((null data) nil) ((set= s (car data)) data) (t (set-member s (cdr data)))))となり,subsetpと同様に,集合を要素とする 集合のサブセットかどうかを調べるset-subsetp を作れば,
(defun set-subsetp (a b) (cond ((null a) t) ((set-member (car a) b) (set-subsetp (cdr a) b)) (t nil)))結局,集合を要素とする2つの集合が互いに 等しいということを調べる関数 set-set= は,
(defun set-set= (a b) (and (set-subsetp a b) (set-subsetp b a)))となり,
> (set-set= '((a b) (b c)) '((c b) (b a))) t > (set-set= (power-set '(1 2 3)) '(nil (1) (2) (3) (1 2) (2 3) (1 3) (1 2 3))) tということになる.