У меня есть набор элементов определенного типа, и я хочу сгенерировать его набор мощности.
Я искал в Интернете и не смог найти код Scala, который решает эту конкретную задачу.
Это то, что я придумал. Это позволяет вам ограничивать кардинальность наборов, создаваемых параметром длины.
def power[T](set: Set[T], length: Int) = {
var res = Set[Set[T]]()
res ++= set.map(Set(_))
for (i <- 1 until length)
res = res.map(x => set.map(x + _)).flatten
res
}
Это не будет включать пустой набор. Для этого вам нужно будет изменить последнюю строку метода просто на res + Set()
Любые предложения, как это можно сделать в более функциональном стиле?