Anonymous user
Power set: Difference between revisions
→{{header|Kotlin}}
m (→{{header|REXX}}: added/changed whitespace and comments, split a compound statement.) |
|||
Line 2,149:
=={{header|Kotlin}}==
<lang scala>// purely functional & lazy version,
fun <T> Set<T>.subsets(): Sequence<Set<T>> =
0 -> sequenceOf(emptySet())
val head = first()
generate(0, m)▼
▲ }
}
// if recursion is an issue, you may change it this way:
▲ if (k >= m) {
fun <T> Set<T>.subsets(): Sequence<Set<T>> = sequence {
when (size)
else ->
val head =
val tail = this@subsets -
for (subset in tail.subsets())
yield(setOf(head) + subset)
}
}
}
▲}</lang>
{{out}}
<pre>
Power set of
[]
[1]▼
[2]▼
[3]▼
[4]
[
[1, 3]▼
[1, 4]▼
[2, 3]▼
[2, 4]▼
[3, 4]
[
[
[
[2, 3, 4]
▲[1]
▲[1, 3]
▲[1, 3, 4]
▲[1, 2]
▲[1, 2, 4]
▲[1, 2, 3]
[1, 2, 3, 4]
Power set of
[]
Power set of
[]
[[]]
|