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.
When the method is called on Iterator, using the parent iterator is not allowed before the inner iterator Iterator.next returns false and then it points to its last element. The resulting iterator is Iterator.valid .
original seed value
Iterator containing values of subsequent values of seed