object P09{
def pack[T](list: List[T]): List[List[T]] = {
list.foldRight(List(): List[List[T]]){ (x, acc) =>
acc match {
case Nil => List(List(x))
case l :: xs if l contains x => (x :: l) :: xs
case _ => List(x) :: acc
}
}
}
def main(args: Array[String]){
println(pack(List('a, 'a, 'a, 'a, 'b, 'c, 'c, 'a, 'a, 'd, 'e, 'e, 'e, 'e)))
}
}