2013-10-08 27 views
0

我想用這個斯卡拉構建斐波那契序列特異性表達的引用:Eclipse不解決前進斯卡拉

val fibs: Stream[Int] = 0 #:: 1 #:: fibs.zip(fibs.tail).map { n => n._1 + n._2 } 

但日食編譯器抱怨就向前引用:

正向引用延伸value fibs的定義

這個問題我不能在eclipse中運行main方法。

我該如何解決?

編輯 我試圖在工作表,主要,方法和REPL中聲明它。最後一個完美。

回答

0

這是工作表的限制。如果你把它放在一個單獨的類或方法中,它應該工作。

[編輯]

fibs需要是一個字段。如果它是一個本地val,它需要懶惰修飾符。

這應該工作:

def foo { 
    lazy val fibs: Stream[Int] = 0 #:: 1 #:: fibs.zip(fibs.tail).map { n => n._1 + n._2 } 
} 
的主要方法

class C { 
    val fibs: Stream[Int] = 0 #:: 1 #:: fibs.zip(fibs.tail).map { n => n._1 + n._2 } 
} 
+0

它也不起作用。 – maks

+0

我收回。它只適用於'fibs'是一個字段,而不是本地val。 –