Как я могу создать анонимную функцию на карте в scala?

Как создать анонимную и кардную функцию в Scala? Не удалось выполнить следующие два:

scala> (x:Int)(y:Int) => x*y
<console>:1: error: not a legal formal parameter
       (x:Int)(y:Int) => x*y
              ^

scala> ((x:Int)(y:Int)) => x*y
<console>:1: error: not a legal formal parameter
       ((x:Int)(y:Int)) => x*y
               ^

Ответ 1

Чтобы создать функцию в карри, напишите ее так, как если бы она была несколькими функциями (это на самом деле случай;-)).

scala> (x: Int) => (y: Int) => x*y
res2: Int => Int => Int = <function1>

Это означает, что у вас есть функция от Int до функции от Int до Int.

scala> res2(3)
res3: Int => Int = <function1>

в качестве альтернативы вы можете написать это следующим образом:

scala> val f: Int => Int => Int = x => y => x*y
f: Int => Int => Int = <function1>