これは、スカラでのフィボナッチ数の正確で有用な定義であると私が考えたものです。
lazy val fibs:Stream[Int] = 0 #:: 1 #:: (fibs,fibs.tail).zipped.map(_+_)
ただし、次のエラーが表示されます。
fibs take 10 foreach println
0
1
java.lang.StackOverflowError
at scala.collection.mutable.LazyBuilder.(LazyBuilder.scala:25)
at scala.collection.immutable.Stream$StreamBuilder.(Stream.scala:492)
at scala.collection.immutable.Stream$.newBuilder(Stream.scala:483)
at...
圧縮されたものがストリームで正しく機能しないと思いますか? これを機能させる方法、またはこれが機能しない理由について何か提案はありますか?