続ジェネリックなmax
可変長版。
scala> def max[T <% Ordered[T]](elements: T*): T = elements toList match { | case List(x) => x | case x :: rest => | val maxRest = max(rest: _*) | if (x > maxRest) x else maxRest | } max: [T](T*)(implicit (T) => Ordered[T])T scala> max(1, 45, 22, 9) res0: Int = 45 scala> max(List(1, 45, 22, 9): _*) res4: Int = 45
関数型もっと勉強しよう。