Guest User

Untitled

a guest
Jul 21st, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.39 KB | None | 0 0
  1. (use '[clojure.test])
  2. (defn powerset
  3. ([ls] (lazy-seq (cons () (powerset '(()) ls))))
  4. ([acc ls]
  5. (if (empty? ls)
  6. ()
  7. (let [fs (first ls)
  8. added (map #(conj % fs) acc)]
  9. (lazy-cat added
  10. (powerset (concat acc added) (rest ls)))))))
  11.  
  12. (deftest test-powerset
  13. (is (= '(()) (powerset '())))
  14. (is (= '(() (1)) (powerset '(1))))
  15. (is (= '(() (1) (2) (2 1)) (powerset '(1 2)))))
Add Comment
Please, Sign In to add comment