Skip to content
Snippets Groups Projects
Commit d27ea43a authored by Régis Blanc's avatar Régis Blanc
Browse files

No commit message

No commit message
parent 30be81b3
Branches
Tags
No related merge requests found
package setconstraints
import setconstraints.Trees._
object Manip {
def flatten(f: Formula): Formula = {
def flatten0(form: Formula): Formula = form match {
case And(fs) => {
And(fs.foldLeft(Nil: Seq[Formula])((acc, f) => f match {
case And(fs2) => acc ++ fs2.map(flatten0)
case f2 => acc :+ flatten0(f2)
}))
}
case f => f
}
Tools.fix(flatten0, f)
}
}
......@@ -8,4 +8,9 @@ object Tools {
def toCaseClasses(classes: Seq[ClassTypeDef]): Seq[CaseClassDef] =
classes.filter(_.isInstanceOf[CaseClassDef]).map(_.asInstanceOf[CaseClassDef])
def fix[A](f: (A) => A, a: A): A = {
val res = f(a)
if(res == a) a else fix(f, res)
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment