scala/ScalaBook/chapter-03/partialFunction.scala
val R1 : PartialFunction[Long,Double] = {
case 0 => Math.POS_INF_DOUBLE
case 1 => 1.0
case 2 => 0.5
case 3 => 1.0/3.0
case 4 => 0.25
case 5 => 0.2
case 6 => 1.0/6.0
case 7 => 1.0/7.0
case 8 => 0.125
case 9 => 1.0/9.0
case 10 => 0.1
}
val R2 : PartialFunction[Long,Double] = {
case 11 => 1.0 / 11
case 12 => 1.0 / 12
}
val R = R1 orElse R2
println(R(11))
val R5 : PartialFunction[Tuple2[Long,Long],Double] = {
case (1,2) => 5.0
case (2,3) => 13.0
}
println(R5(1,2))
def name[T](implicit m: scala.reflect.Manifest[T]) = m.erasure
var z = name[Int => Int]
println(z)