RosettaCodeData/Task/Power-set/Swift/power-set-1.swift

16 lines
318 B
Swift
Raw Permalink Normal View History

2018-06-22 20:57:24 +00:00
func powersetFrom<T>(_ elements: Set<T>) -> Set<Set<T>> {
guard elements.count > 0 else {
return [[]]
}
var powerset: Set<Set<T>> = [[]]
for element in elements {
for subset in powerset {
powerset.insert(subset.union([element]))
}
}
return powerset
}
// Example:
powersetFrom([1, 2, 4])