Power set: Difference between revisions
Content added Content deleted
m (→{{header|Clojure}}: contrib -> math) |
(→{{header|Clojure}}: added alternate solution) |
||
Line 464: | Line 464: | ||
user> (subsets S) |
user> (subsets S) |
||
(() (1) (2) (3) (4) (1 2) (1 3) (1 4) (2 3) (2 4) (3 4) (1 2 3) (1 2 4) (1 3 4) (2 3 4) (1 2 3 4))</lang> |
(() (1) (2) (3) (4) (1 2) (1 3) (1 4) (2 3) (2 4) (3 4) (1 2 3) (1 2 4) (1 3 4) (2 3 4) (1 2 3 4))</lang> |
||
'''Alternate solution''', with no dependency on third-party library: |
|||
<lang Clojure>(defn powerset |
|||
[coll] |
|||
(reduce (fn [a x] |
|||
(set (concat a (map #(set (concat #{x} %)) a)))) |
|||
#{#{}} coll)) |
|||
(powerset #{1 2 3})</lang> |
|||
<lang Clojure>#{#{} #{1} #{2} #{1 2} #{3} #{1 3} #{2 3} #{1 2 3}}</lang> |
|||
=={{header|CoffeeScript}}== |
=={{header|CoffeeScript}}== |