我想使用这个scala特定表达式构建Fibonacci序列:
val fibs: Stream[Int] = 0 #:: 1 #:: fibs.zip(fibs.tail).map { n => n._1 + n._2 }
但是eclipse编译器抱怨前向引用:
前向参考扩展了价值纤维的定义
有了这个问题,我无法在eclipse中运行main方法。
我该如何解决?
修改 我试图在工作表,main,方法和REPL中声明它。最后一个完美无缺。
答案 0 :(得分: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 }
}