以下のまとめでいくつか(最初は多少の勘違い含めて)LazyListに関してもtweetしてますが、Scala 2.13からStreamが非推奨になってLazyListというStreamと似てるけれど少し違うものが追加される予定らしいです。それの話
scala/LazyList.scala at a52482c7236a782adedf7523301a97659e4d720f · scala/scala · GitHub
LazyListは "先頭もlazyになった" ことが最大というかある意味唯一の違い(?)のようですが、それが、どういうことがよく考えたら
"LazyListの長さと、要素の評価のタイミングが別になった"
あるいは
"要素の存在の有無の決定と、要素の値の評価のタイミングが別になった"
みたいに言い換えることが出来ることに気が付きました。
たしかHaskellなどのListもそうなっていたはずです(うろ覚え)。
それの具体例を示そうと思ったら、そういう生成用メソッドがないので、自作しました
「こういうメソッドをLazyListのコンパニオンオブジェクトに追加しようぜ!」
という提案をするべきなんでしょうか・・・?(誰か代わりにしておいてくれていいですよ)