Scalaのパターンマッチとガード

すぐに忘れるのでメモ.コードはリストから最大値を取ってくるよくあるやつ.

def max(xs: List[Int]): Int = xs match {
    case Nil => throw new java.util.NoSuchElementException
    case x :: Nil => x
    case x :: tail => x.max(max(tail))
    }