Правильный синтаксис:
val cloz: (Int, String) => String = (num: Int, str: String) => {
str + "-" + num
}
Кстати, в этом простом случае вы также можете упростить выражение, как это (особенно если вы уже явно указали тип функции):
val cloz: (Int, String) => String = (num, str) => str + "-" + num
Обновление
Вы также можете использовать REPL для изучения Scala - это очень хороший инструмент. Вы можете запустить его, просто запустив scala
без каких-либо аргументов. Вот пример сеанса:
scala> val cloz = (num: Int, str: String) => str + "-" + num
cloz: (Int, String) => java.lang.String = <function2>
scala> val cloz: (Int, String) => String = (num: Int, str: String) => {
| str + "-" + num
| }
cloz: (Int, String) => String = <function2>
scala> val cloz: (Int, String) => String = (num, str) => str + "-" + num
cloz: (Int, String) => String = <function2>
scala> def printCloz(cloz: (Int, String) => String, num: Int, str: String) = print(cloz(num, str))
printCloz: (cloz: (Int, String) => String, num: Int, str: String)Unit
Как видите, он не только позволяет в интерактивном режиме выполнять код, но и печатает информацию о типе, если вы что-то определяете.