12
次は両方の整数のストリームを作成するためのものです:最初は結構ですストリームはいつ遅延する必要がありますか?
val s: Stream[Int] = 1 #:: s.map(_ + 1)
def makeStream = {
val s: Stream[Int] = 1 #:: s.map(_ + 1)
s
}
を。しかしmakeStream
方法はコンパイルされません。
error: forward reference extends over definition of value s
val s: Stream[Int] = 1 #:: s.map(_ + 1)
^
我々はs
lazy val
を作る場合にのみコンパイルされます。メソッド内でlazy val
にする必要があるのはなぜですか?外部ではありません。