Wyjaśnienie podpisu funkcji mapy Scala?
Ten kod stosuje funkcję do listy Ints i ustawia każdą wartość na liście opcji o wartości 4:
val l = List(1,2,3,4,5) //> l : List[Int] =
val v = 4 //> v : Int = 4
def g(v:Int) = List(v-1, v, v+1) //> g: (v: Int)List[Int]
l map (x => {f(x);}) //> res0: List[Option[Int]] = List(Some(4), Some(4), Some(4), Some(4), Some(4))
Podpis mapy:
def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That = {
Ponieważ B jest pierwszym parametrem typu (na mapie [B, To]), czy oznacza to jego wpisanie do prefiksu „l” (Lista)?
Jak wpisać „A”? Czy kompilator scala w jakiś sposób sprawdza typ wewnątrz listy „l” i wnioskuje, że jego typ to Int?
W jaki sposób wpisano „to”?