scala: mettre en œuvre un générique récursif de la fonction max

J'essaie de port ce haskell max implémentation de la fonction à la scala

maximum' :: (Ord a) => [a] -> a  
maximum' [] = error "maximum of empty list"  
maximum' [x] = x  
maximum' (x:xs) = max x (maximum' xs) 

Ceci est ma première tentative:

def max[T <: Ordered[T]](list: List[T]): T = list match {

  case Nil => throw new Error("maximum of empty list")
  case head :: Nil => head
  case list => {
    val maxTail = max(list.tail)
    if (list.head > maxTail) list.head else maxTail
  }
}


max(List[Int](3,4))

Mais j'obtiens l'erreur suivante:

inferred type arguments [Int] do not conform to method max's type parameter bounds [T <: Ordered[T]]

J'ai essayé avec la commande, comprable, etc avec des résultats similaires...

La moindre idée de ce qu'il manque?

InformationsquelleAutor opensas | 2012-09-20