2010-08-12 8 views
5

Einige Leute behaupten, dass scala mit rekursiven Strukturtypen umgehen kann, wenn Sie die Option -Yrecursion von scalac verwenden. Dennoch meine minimalistische Beispiel lässt sich nicht kompilieren:Werden rekursive Strukturtypen in scala nicht mehr unterstützt?

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

Compilation liefert:

$ 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 

diese Änderung nicht wahr? Sollte das Beispiel nicht kompilieren?

+0

Siehe auch http://stackoverflow.com/questions/3201577/scala-how-to-define-a-structural-type-that-ref-zur- sich selbst – Jesper

+0

Vielen Dank für die Referenz. Sieht so aus, als würde sich diese Frage immer wieder stellen. – gruenewa

Antwort

8

Rekursive Strukturtypen wurden nie unterstützt. Die Option -Yrecursion führt etwas aus, das nicht mit Strukturtypen zusammenhängt.

+0

Danke für deine Antwort und natürlich für die tolle Arbeit an der Scala IDE. – gruenewa

Verwandte Themen