| [#82] | project: compiler | priority: medium | category: bug | |
|---|---|---|---|---|
| submitter | assigned to | status | date submitted | |
| Stephane | Burak | fixed | 2003-08-07 13:30:13.0 | |
| subject | scala.MatchError | |||
| code |
object Main {
def min0[A](less: (A, A) => Boolean, xs: List[A]): Option[A] = xs match {
case List() => None
case List(x) => Some(x) /*1*/
// case x :: Nil => Some(x) /*2*/
case y :: ys => min0(less, ys) match {
case Some(m) => if (less(y, m)) Some(y) else Some(m)
}
}
def min(xs: List[Int]) = min0((x: Int, y: Int) => x < y, xs);
def main(args: Array[String]) =
System.out.println(min(List()));
}
|
|||
| what happened | Exception in thread "main" scala.MatchError: in 'src/Main.scala' at line 4 |
|||
| what expected | Example works fine if you replace line /*1*/ by line /*2*/. The value None should be printed out. | |||
| [back to overview] | ||||
| Burak edited on 2003-08-27 18:13:38.0 |
| matching empty sequences with empty patterns works now. |
| Burak edited on 2003-08-27 18:13:55.0 |