RosettaCodeData/Task/Power-set/Scala/power-set-3.scala
2016-12-05 22:15:40 +01:00

7 lines
264 B
Scala

def powerset[A](s: Set[A]) = {
def powerset_rec(acc: List[Set[A]], remaining: List[A]): List[Set[A]] = remaining match {
case Nil => acc
case head :: tail => powerset_rec(acc ++ acc.map(_ + head), tail)
}
powerset_rec(List(Set.empty[A]), s.toList)
}