(1 to 10).foreach(println(_+1))
компилятор видит вышеприведенное выражение как:
(1 to 10).foreach(println(x => x + 1))
И вы хотите это так:
(1 to 10).foreach(x=>println(x+1))
Синтаксис заполнителя для анонимных функций заменяет наименьшее возможное выражение, содержащее выражение,