Power set: Difference between revisions
Content added Content deleted
(Updated both D entries) |
|||
Line 743: | Line 743: | ||
let subsets xs = List.foldBack (fun x rest -> rest @ List.map (fun ys -> x::ys) rest) xs [[]] |
let subsets xs = List.foldBack (fun x rest -> rest @ List.map (fun ys -> x::ys) rest) xs [[]] |
||
</lang> |
</lang> |
||
alternatively with list comprehension |
|||
<lang fsharp> |
|||
let rec pow = |
|||
function |
|||
| [] -> [[]] |
|||
| x::xs -> [for i in pow xs do yield! [i;x::i]] |
|||
</lang> |
|||
=={{header|Factor}}== |
=={{header|Factor}}== |
||
We use hash sets, denoted by <code>HS{ }</code> brackets, for our sets. <code>members</code> converts from a set to a sequence, and <code><hash-set></code> converts back. |
We use hash sets, denoted by <code>HS{ }</code> brackets, for our sets. <code>members</code> converts from a set to a sequence, and <code><hash-set></code> converts back. |