reactor-core/src/main/java/reactor/core/publisher/Flux.java
public final <A> Mono<A> reduce(A initial, BiFunction<A, ? super T, A> accumulator) {
		return reduceWith(() -> initial, accumulator);
	}
public final <A> Mono<A> reduce(A initial, BiFunction<A, ? super T, A> accumulator) {
		return reduceWith(() -> initial, accumulator);
	}
Reduce the values from this {@link Flux} sequence into a single object matching the
type of a seed value. Reduction is performed using a {@link BiFunction} that
takes the intermediate result of the reduction and the current value and returns
the next intermediate value of the reduction. First element is paired with the seed
value, {@literal initial}.

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

@reactor.discard This operator discards the internally accumulated value upon cancellation or error.

@param accumulator the reducing {@link BiFunction}
@param initial the seed, the initial leftmost argument to pass to the reducing {@link BiFunction}
@param <A> the type of the seed and the reduced object

@return a reduced {@link Flux}