Какими правилами следует руководствоваться подчеркиванием для определения анонимной функции?

я использую_ как заполнитель для создания анонимной функции, и проблема в том, что я не могу предсказать, как Scala собирается преобразовать мой код. Точнее, он по ошибке определяет, насколько «большую» анонимную функцию я хочу.

 List(1,2,3) foreach println(_:Int)   //error !
 List(1,2,3) foreach (println(_:Int)) //work
 List(1,2,3) foreach(println(_:Int))  //work

С помощью-Xprint:typer Я вижу, что Scala превращает первый в «большую анонимную функцию»:

x$1 => List(1,2,3) foreach(println(x$1:Int))

отработанные 2-еправо превращение в то, что я хочу.

... foreach (x$1 => println(x$1:Int)) 

Почему это? Какое правило?

Ответы на вопрос(2)

Ваш ответ на вопрос