Creates a new iterator that is initially pointing to seed. Then subsequent values are obtained after applying the function to previous value and the subsequent items.
The resulting iterator is always valid and it contains the seed value.
Default implementation uses stream.
original seed value
Iterator containing values of subsequent values of seed