1
我寫了類似map1
功能List.map
爲:什麼是錯的使用拉姆達這裏
def map1[A, B](xs: List[A], f: A => B): List[B] = {
xs match {
case List() => scala.collection.immutable.Nil
case head :: tail => f(head) :: map1(tail, f)
}
}
現在,當我撥打上面:
map1(List(1, 2, 3), x => x + 1)
我得到的錯誤爲:error: missing parameter type
。但下列作品:
List(1, 2, 3).map(x => x + 1)
爲什麼map1
不適用於lamdas?
這不是一個拉姆達問題,因爲這個作品'(X:強度)=> X + 1'。這是類型推理引擎的一個問題。 – jwvh
推論問題:類型'A'可以從'xs'推斷爲'f',就像在相同的參數列表中一樣 – cchantep