Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def combinationList[T](ls:List[List[List[T]]]) : List[List[List[T]]] = ls match {
- case head :: Nil => for(x <- head) yield List(x)
- case head :: tail :: Nil =>
- for {
- hl <- head
- tl <- tail
- if tl.forall(te => !hl.contains(te))
- } yield List(hl, tl)
- }
- case _ => combinationList(combinationList(ls.tail):::List(ls.head))
- List ( List(1), List(2), List(3) )
- combinationList(List(combinationList(ls.tail)):::List(ls.head))
Add Comment
Please, Sign In to add comment