public final Mono<T> reduce(BiFunction<T,T,T> reducer){
  Objects.requireNonNull(reducer,"reducer");
  return Mono.onAssembly(new ParallelReduceFull<>(this,reducer));
}

public final Mono < T > reduce ( BiFunction < T , T , T > reducer ) { Objects . requireNonNull ( reducer , "reducer" ) ; return Mono . onAssembly ( new ParallelReduceFull < > ( this , reducer ) ) ; }
reduces all values within a ' rail ' and across ' rails ' with a reducer function into a single sequential value . < p > note that the same reducer function may be called from multiple threads concurrently .
