Ответ 1
Используйте следующий синтаксис:
def descendEach[T](times:Int)(f: => T)
Таким образом, вы можете не только передавать функцию без дополнительных () =>
(это называется pass by name), но также использовать функции, возвращающие любой тип (не обязательно Unit
). Иногда удобно, когда у вас есть существующая функция, которую вы хотите передать, но на самом деле не заботитесь о ее возвращаемом значении:
def g() = 42
descendEach(20)(g)
Обратите внимание, что с помощью этого синтаксиса вы просто используете f
, а не f()
.