>>32
自分が書いたのはこんなの。
Lisp/Schemeはほとんど使ったことないんで書き方がおかしいかもしれないが。

(define (add-elt elt set)
(cond
((null? set) (list elt))
((member elt set) set)
(else (cons elt set))))

(define (map-add-elt elt set)
(cond
((null? set) '())
(else (map (lambda (m) (add-elt elt m)) set))))

(define (power-set set)
(cond
((null? set) '(()))
(else (let
((ps (power-set (cdr set))))
(append ps (map-add-elt (car set) ps))))))