У меня есть набор элементов некоторого типа и вы хотите сгенерировать его набор мощности.
Я искал в Интернете и не мог найти код 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()
Любые предложения, как это можно сделать в более функциональном стиле?