ということがありまして、一応できたにはできたのですが…

1
2
3
4
5
6
7
val counter = Iterator.from(0)

println(counter.next)
println(counter.next)
println(counter)
println(counter)
println(counter.next)

で、こいつを実行すると…

1
2
3
4
5
0 res0: Unit = ()
1 res1: Unit = ()
non-empty iterator res3: Unit = ()
non-empty iterator res4: Unit = ()
2 res5: Unit = ()

こうなる。で、実際にこれで問題ないと思うのですが、いろいろ検索して調べてみても同様にやってる人がいなかったのでこの実装だと何か問題があるのか???と非常に不安な状態…