冪集合は格要素を「とる」か「とらない」で再帰すれば良いと考えて
こう書いてみました
(define (power l)
(if (not (pair? l)) (list l)
(append
(power (cdr l)) ;先頭をとらない
(map (pa$ cons (car l)) (power (cdr l))) ;先頭をとる
)))