Ответ 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>