Я получил то же сообщение об ошибке, когда вставил в первую строку кода без исправления ошибки в нем:
scala> val ADD = (x: Double, y Double) => x+y
<console>:1: error: not a legal formal parameter
val ADD = (x: Double, y Double) => x+y
^
Я попытался это сделать:
scala> val ADD = (x: Double, y: Double) => x+y
ADD: (Double, Double) => Double = <function>
scala> val diffMap = Map(ADD -> (x: String, y: String) => x + y)
<console>:1: error: not a legal formal parameter
val diffMap = Map(ADD -> (x: String, y: String) => x + y)
^
Таким образом, похоже, что эта ошибка указывает на недопустимый параметр функции, и анализатор пытается сгруппировать Map(ADD -> (x: String, y: String) => x + y)
, например, Map((ADD -> (x: String, y: String)) => x + y)
.
. Поэтому вам необходимо заключить скобки или скобки вокруг функции:
scala> val diffMap = Map(ADD -> ((x: String, y: String) => x + y))
diffMap: scala.collection.immutable.Map[(Double, Double) => Double,(String, String) => java.lang.String] = Map(<function> -> <function>)