@marcus marcus / FuncQS.scala
Created at Mon May 14 04:23:16 EDT 2018
Functional quick-sort
FuncQS.scala
Raw
// 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)
}