Почему эта-расширение полиморфного метода не приводит к значению полиморфной функции?

Scala 2 не имеет значений полиморфных функций, поэтому полиморфные методы, расширяющие эту функцию, дают только

      scala> def f[A](a: A): A = ???
def f[A](a: A): A

scala> f _
val res0: Nothing => Nothing = $Lambda$7757/1502613782@45af2c1

Однако в Scala 3 действительно есть значения полиморфных функций, поэтому почему полиморфные методы, расширяющие эту функцию, не дают больше, чем

      scala> def f[A](a: A): A = ???
def f[A](a: A): A

scala> f
val res0: Any => Any = Lambda$7538/1430563609@4a905603

scala> val g: ([A] => A => A) = f
1 |val g: ([A] => A => A) = f
  |                         ^
  |                         Found:    Any => Any
  |                         Required: PolyFunction{apply: [A](x$1: A): A}

0 ответов

Другие вопросы по тегам