public final Flux<T> scan(BiFunction<T, T, T> accumulator) {
		return onAssembly(new FluxScan<>(this, accumulator));
	}
public final Flux<T> scan(BiFunction<T, T, T> accumulator) {
		return onAssembly(new FluxScan<>(this, accumulator));
	}
public final Flux < T > scan ( BiFunction < T , T , T > accumulator ) { return onAssembly ( new FluxScan <> ( this , accumulator ) ) ; }
Reduce this {@link Flux} values with an accumulator {@link BiFunction} and
also emit the intermediate results of this function.
<p>
Unlike {@link #scan(Object, BiFunction)}, this operator doesn't take an initial value
but treats the first {@link Flux} value as initial value.
<br>
The accumulation works as follows:
<pre><code>
result[0] = source[0]
result[1] = accumulator(result[0], source[1])
result[2] = accumulator(result[1], source[2])
result[3] = accumulator(result[2], source[3])
...
</code></pre>

<p>
<img class="marble" src="doc-files/marbles/scanWithSameReturnType.svg" alt="">

@param accumulator the accumulating {@link BiFunction}

@return an accumulating {@link Flux}
Reduce this { @link Flux } values with an accumulator { @link BiFunction } and also emit the intermediate results of this function . <p > Unlike { @link #scan ( Object BiFunction ) } this operator doesn t take an initial value but treats the first { @link Flux } value as initial value . <br > The accumulation works as follows : <pre > <code > result [ 0 ] = source [ 0 ] result [ 1 ] = accumulator ( result [ 0 ] source [ 1 ] ) result [ 2 ] = accumulator ( result [ 1 ] source [ 2 ] ) result [ 3 ] = accumulator ( result [ 2 ] source [ 3 ] ) ... < / code > < / pre >