Class CartesianProduct<A,B>
java.lang.Object
com.jnape.palatable.lambda.functions.builtin.fn2.CartesianProduct<A,B>
- Type Parameters:
A
- The multiplicand Iterable element typeB
- The multiplier Iterable element type
- All Implemented Interfaces:
Fn1<Iterable<A>,
,Fn1<Iterable<B>, Iterable<Tuple2<A, B>>>> Fn2<Iterable<A>,
,Iterable<B>, Iterable<Tuple2<A, B>>> Applicative<Fn1<Iterable<B>,
,Iterable<Tuple2<A, B>>>, Fn1<Iterable<A>, ?>> Cartesian<Iterable<A>,
,Fn1<Iterable<B>, Iterable<Tuple2<A, B>>>, Fn1<?, ?>> Cocartesian<Iterable<A>,
,Fn1<Iterable<B>, Iterable<Tuple2<A, B>>>, Fn1<?, ?>> Contravariant<Iterable<A>,
,Profunctor<?, Fn1<Iterable<B>, Iterable<Tuple2<A, B>>>, Fn1<?, ?>>> Functor<Fn1<Iterable<B>,
,Iterable<Tuple2<A, B>>>, Fn1<Iterable<A>, ?>> Profunctor<Iterable<A>,
,Fn1<Iterable<B>, Iterable<Tuple2<A, B>>>, Fn1<?, ?>> Monad<Fn1<Iterable<B>,
,Iterable<Tuple2<A, B>>>, Fn1<Iterable<A>, ?>> MonadReader<Iterable<A>,
,Fn1<Iterable<B>, Iterable<Tuple2<A, B>>>, Fn1<Iterable<A>, ?>> MonadRec<Fn1<Iterable<B>,
,Iterable<Tuple2<A, B>>>, Fn1<Iterable<A>, ?>> MonadWriter<Iterable<A>,
Fn1<Iterable<B>, Iterable<Tuple2<A, B>>>, Fn1<Iterable<A>, ?>>
public final class CartesianProduct<A,B>
extends Object
implements Fn2<Iterable<A>,Iterable<B>,Iterable<Tuple2<A,B>>>
Lazily compute the cartesian product of an
Iterable<A>
and Iterable<B>
,
returning an Iterable<Tuple2<A, B>>
, the products as tuples of
multiplicand A
s and multiplier B
s.
Note that this algorithm exhaustively pairs all elements from Iterable<B>
to the first element of
Iterable<A>
before advancing to the next element of Iterable<A>
, so if
Iterable<B>
is infinite, only one element from Iterable<A>
will ever be
paired.
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <A,
B> CartesianProduct <A, B> cartesianProduct
(Iterable<A> as) cartesianProduct
(Iterable<A> as, Iterable<B> bs) checkedApply
(Iterable<A> as, Iterable<B> bs) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.jnape.palatable.lambda.functions.Fn1
andThen, carry, cartesian, censor, choose, cocartesian, diMap, diMapR, discardL, flatMap, fmap, lazyZip, listens, local, pure, self, thunk, toFunction, trampolineM, zip, zip