// Functional quick-sort (not very effective)
// Example of pattern matching, for comprehension and recursion
def qs(list: List[Int]): List[Int] = list match {
case Nil => Nil
case x :: xs =>
lazy val ys = for (y <- xs if y <= x) yield y
lazy val zs = for (z <- xs if z > x) yield z
qs(ys) ++ List(x) ++ qs(zs)
}