
pimpathon.set.scala Maven / Gradle / Ivy
package pimpathon
import scala.collection.{mutable ⇒ M, GenTraversable, GenTraversableLike}
import pimpathon.any._
import pimpathon.list._
object set extends genTraversableLike[Set] {
implicit def setPimps[A](set: Set[A]): SetPimps[A] = new SetPimps[A](set)
class SetPimps[A](val set: Set[A]) {
def notContains(elem: A): Boolean = !set.contains(elem)
def powerSet: Set[Set[A]] = {
def recurse(list: List[A]): List[List[A]] =
list.unconsC(List(Nil), head ⇒ tail ⇒ recurse(tail) |> (ps ⇒ ps ++ ps.map(head :: _)))
recurse(set.toList).map(_.toSet).toSet
}
def toMutable: M.Set[A] = mutable
def mutable: M.Set[A] = M.Set.empty[A] ++ set
}
protected def toGTL[sa](s: Set[sa]): GenTraversableLike[sa, GenTraversable[sa]] = s
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy