次の関数呼び出しはすべて同じですが、その理由がわかりません。
val list = List(List(1), List(2, 3), List(4, 5, 6))
list.map(_.length) // res0 = List(1,2,3) result of 1st call
list map(_.length) // res1 = List(1,2,3) result of 2nd call
list map (_.length) // res2 = List(1,2,3) result of 3rd call
map はクラス List のメンバー関数であるため、通常の関数呼び出しである最初の呼び出しを理解できます
しかし、2回目と3回目の呼び出しは理解できません。たとえば、3 回目の呼び出しで、"(_.length)" が "map" のパラメーターであることを Scala コンパイラーはどのようにして知ることができるでしょうか? 「マップ」が「リスト」のメンバー関数であることをコンパイラはどのように知ることができますか?