java.lang.Object
com.jnape.palatable.lambda.functions.builtin.fn1.Coalesce<L,R>
Type Parameters:
L - the left parameter type
R - the right parameter type
All Implemented Interfaces:
Fn1<Iterable<Either<L,R>>,Either<Iterable<L>,Iterable<R>>>, Applicative<Either<Iterable<L>,Iterable<R>>,Fn1<Iterable<Either<L,R>>,?>>, Cartesian<Iterable<Either<L,R>>,Either<Iterable<L>,Iterable<R>>,Fn1<?,?>>, Cocartesian<Iterable<Either<L,R>>,Either<Iterable<L>,Iterable<R>>,Fn1<?,?>>, Contravariant<Iterable<Either<L,R>>,Profunctor<?,Either<Iterable<L>,Iterable<R>>,Fn1<?,?>>>, Functor<Either<Iterable<L>,Iterable<R>>,Fn1<Iterable<Either<L,R>>,?>>, Profunctor<Iterable<Either<L,R>>,Either<Iterable<L>,Iterable<R>>,Fn1<?,?>>, Monad<Either<Iterable<L>,Iterable<R>>,Fn1<Iterable<Either<L,R>>,?>>, MonadReader<Iterable<Either<L,R>>,Either<Iterable<L>,Iterable<R>>,Fn1<Iterable<Either<L,R>>,?>>, MonadRec<Either<Iterable<L>,Iterable<R>>,Fn1<Iterable<Either<L,R>>,?>>, MonadWriter<Iterable<Either<L,R>>,Either<Iterable<L>,Iterable<R>>,Fn1<Iterable<Either<L,R>>,?>>

public final class Coalesce<L,R> extends Object implements Fn1<Iterable<Either<L,R>>,Either<Iterable<L>,Iterable<R>>>
Fold an Iterable<Either<L, R>> into an Either<Iterable<L>, Iterable<R>>, preserving all results of the side that's returned. That is, if the result is a left, it will contain all left values; if it is a right, it will contain all right values.

It may be useful to think of this as a more efficient version of Merge<Iterable<L>, Iterable<R>>.

  • Field Details

    • INSTANCE

      private static final Coalesce<?,?> INSTANCE
  • Constructor Details

    • Coalesce

      private Coalesce()
  • Method Details