** haskell :PROPERTIES: :DATE: 2009-11-20 :END: #+begin_src haskell powerSet :: [a] -> [[a]] powerSet = foldr (\ x ps -> map (\ y -> x : y) ps ++ ps ) [[]] #+end_src #+begin_src haskell powerSet [1, 2, 3] #+end_src