@Override default <U> List<U> scanRight(U zero, BiFunction<? super T, ? super U, ? extends U> operation) { return Collections.scanRight(this, zero, operation, Iterator::toList); }
@Override default <U> Seq<U> scanRight(U zero, BiFunction<? super Tuple2<K, V>, ? super U, ? extends U> operation) { return io.vavr.collection.Collections.scanRight(this, zero, operation, io.vavr.collection.Iterator::toVector); }
@Override public <U> HashSet<U> scanRight(U zero, BiFunction<? super T, ? super U, ? extends U> operation) { return Collections.scanRight(this, zero, operation, HashSet::ofAll); }
@Override public <U> Array<U> scanRight(U zero, BiFunction<? super T, ? super U, ? extends U> operation) { return io.vavr.collection.Collections.scanRight(this, zero, operation, Array::ofAll); }
@Override public <U> Queue<U> scanRight(U zero, BiFunction<? super T, ? super U, ? extends U> operation) { return io.vavr.collection.Collections.scanRight(this, zero, operation, Iterator::toQueue); }
@Override default <U> Seq<U> scanRight(U zero, BiFunction<? super T, ? super U, ? extends U> operation) { return io.vavr.collection.Collections.scanRight(this, zero, operation, io.vavr.collection.Iterator::toStream); }
@Override default <U> Stream<U> scanRight(U zero, BiFunction<? super T, ? super U, ? extends U> operation) { return io.vavr.collection.Collections.scanRight(this, zero, operation, Iterator::toStream); }
@Override public <U> IndexedSeq<U> scanRight(U zero, BiFunction<? super Character, ? super U, ? extends U> operation) { return io.vavr.collection.Collections.scanRight(this, zero, operation, io.vavr.collection.Iterator::toVector); }
@Override public <U> LinkedHashSet<U> scanRight(U zero, BiFunction<? super T, ? super U, ? extends U> operation) { return Collections.scanRight(this, zero, operation, LinkedHashSet::ofAll); }
@Override default <U> Seq<U> scanRight(U zero, BiFunction<? super Tuple2<K, V>, ? super U, ? extends U> operation) { return Collections.scanRight(this, zero, operation, Iterator::toVector); }
@Override default <U> Set<U> scanRight(U zero, BiFunction<? super T, ? super U, ? extends U> operation) { return Collections.scanRight(this, zero, operation, HashSet::ofAll); }
@Override public <U> Vector<U> scanRight(U zero, BiFunction<? super T, ? super U, ? extends U> operation) { return io.vavr.collection.Collections.scanRight(this, zero, operation, Iterator::toVector); }
@Override public <U> Set<U> scanRight(U zero, BiFunction<? super T, ? super U, ? extends U> operation) { if (zero instanceof Comparable) { final Comparator<U> comparator = Comparators.naturalComparator(); return Collections.scanRight(this, zero, operation, iter -> TreeSet.ofAll(comparator, iter)); } else { return Collections.scanRight(this, zero, operation, HashSet::ofAll); } }
@Override default <U> Iterator<U> scanRight(U zero, BiFunction<? super T, ? super U, ? extends U> operation) { Objects.requireNonNull(operation, "operation is null"); if (isEmpty()) { return of(zero); } else { return io.vavr.collection.Collections.scanRight(this, zero, operation, Function.identity()); } }
@Override public <U> PriorityQueue<U> scanRight(U zero, BiFunction<? super T, ? super U, ? extends U> operation) { return io.vavr.collection.Collections.scanRight(this, zero, operation, it -> ofAll(Comparators.naturalComparator(), it)); }
@Override public <U> LinkedHashSet<U> scanRight(U zero, BiFunction<? super T, ? super U, ? extends U> operation) { return Collections.scanRight(this, zero, operation, LinkedHashSet::ofAll); }
@Override default <U> List<U> scanRight(U zero, BiFunction<? super T, ? super U, ? extends U> operation) { return Collections.scanRight(this, zero, operation, Iterator::toList); }
@Override default <U> Stream<U> scanRight(U zero, BiFunction<? super T, ? super U, ? extends U> operation) { return io.vavr.collection.Collections.scanRight(this, zero, operation, Iterator::toStream); }
@Override public <U> Set<U> scanRight(U zero, BiFunction<? super T, ? super U, ? extends U> operation) { if (zero instanceof Comparable) { final Comparator<U> comparator = Comparators.naturalComparator(); return Collections.scanRight(this, zero, operation, iter -> TreeSet.ofAll(comparator, iter)); } else { return Collections.scanRight(this, zero, operation, HashSet::ofAll); } }
@Override default <U> Iterator<U> scanRight(U zero, BiFunction<? super T, ? super U, ? extends U> operation) { Objects.requireNonNull(operation, "operation is null"); if (isEmpty()) { return of(zero); } else { return io.vavr.collection.Collections.scanRight(this, zero, operation, Function.identity()); } }