2010-08-12 12 views
5

Alcune persone sostengono che scala sia in grado di gestire tipi strutturali ricorsivi se si utilizza l'opzione -Yrecursion di scalac. Tuttavia il mio esempio minimalista non può essere compilato:I tipi strutturali ricorsivi non sono più supportati in scala?

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

Compilation:

$ 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 

ha fatto questo cambiamento? Non dovrebbe compilare l'esempio?

+0

Vedere anche http://stackoverflow.com/questions/3201577/scala-how-to-define-a-structural-type-that-refers-to-omeself – Jesper

+0

Grazie per il riferimento. Sembra che questa domanda aumenti ancora e ancora. – gruenewa

risposta

8

I tipi strutturali ricorsivi non sono mai stati supportati. L'opzione -Yrecursion fa qualcosa che non è correlato ai tipi strutturali.

+0

Grazie per la risposta e, naturalmente, per l'ottimo lavoro sull'IDE di Scala. – gruenewa

Problemi correlati