2010-08-12 18 views
5

Algunas personas afirman que scala puede tratar con tipos estructurales recursivos si usa la opción -Yrecursion de scalac. Sin embargo mi ejemplo minimalista no se compila:¿Ya no se admiten los tipos estructurales recursivos en scala?

rendimientos
type Num = { 
    def +(n: Num): Num 
} 

de compilación:

$ scalac -version 
Scala compiler version 2.8.0.final -- Copyright 2002-2010, LAMP/EPFL 
$ scalac -Yrecursion 100 Num.scala 
Num.scala:3: error: recursive method + needs result type 
def +(n: Num): Num 
      ^
one error found 

hizo este cambio? ¿No debería el ejemplo compilar?

+0

Véase también http://stackoverflow.com/questions/3201577/scala-how-to-define-a-structural-type-that-refers-to-itself – Jesper

+0

Gracias por la referencia. Parece que esta pregunta se plantea una y otra vez. – gruenewa

Respuesta

8

Los tipos de estructuras recursivas nunca fueron compatibles. La opción -Yrecursion hace algo que no está relacionado con los tipos estructurales.

+0

Gracias por su respuesta y, por supuesto, por el gran trabajo en el IDE de Scala. – gruenewa

Cuestiones relacionadas