Когда компилятору Scala действительно нужен тип информация о параметрах анонимных функций?
Например, для этой функции:
def callOn[T,R](target: T, f: (T => R)) = f(target)
я не могу использовать ее так:
callOn(4, _.toString)
=> error: missing parameter type for expanded function ((x$1) => x$1.toString)
и я должен указать
callOn(4, (_: Int).toString)
, что довольно некрасиво. Почему мой пример не работает, тогда как такие методы, как map, filter, foldLeft и т. Д. В классах коллекции, похоже, не нуждаются в этом явном типе?