Class Snoc<A>

java.lang.Object
com.jnape.palatable.lambda.functions.builtin.fn2.Snoc<A>
Type Parameters:
A - the Iterable element type
All Implemented Interfaces:
Fn1<A, Fn1<Iterable<A>, Iterable<A>>>, Fn2<A, Iterable<A>, Iterable<A>>, Applicative<Fn1<Iterable<A>, Iterable<A>>, Fn1<A,?>>, Cartesian<A, Fn1<Iterable<A>, Iterable<A>>, Fn1<?,?>>, Cocartesian<A, Fn1<Iterable<A>, Iterable<A>>, Fn1<?,?>>, Contravariant<A, Profunctor<?, Fn1<Iterable<A>, Iterable<A>>, Fn1<?,?>>>, Functor<Fn1<Iterable<A>, Iterable<A>>, Fn1<A,?>>, Profunctor<A, Fn1<Iterable<A>, Iterable<A>>, Fn1<?,?>>, Monad<Fn1<Iterable<A>, Iterable<A>>, Fn1<A,?>>, MonadReader<A, Fn1<Iterable<A>, Iterable<A>>, Fn1<A,?>>, MonadRec<Fn1<Iterable<A>, Iterable<A>>, Fn1<A,?>>, MonadWriter<A, Fn1<Iterable<A>, Iterable<A>>, Fn1<A,?>>

public final class Snoc<A> extends Object implements Fn2<A, Iterable<A>, Iterable<A>>
Opposite of Cons: lazily append an element to the end of the given Iterable.

Note that obtaining both laziness and stack-safety is particularly tricky here, and requires an initial eager deforestation of O(k) traversals where k is the number of contiguously nested Snocs.