Class Snoc<A>

  • Type Parameters:
    A - the Iterable element type
    All Implemented Interfaces:
    Fn1<A,​Fn1<java.lang.Iterable<A>,​java.lang.Iterable<A>>>, Fn2<A,​java.lang.Iterable<A>,​java.lang.Iterable<A>>, Applicative<Fn1<java.lang.Iterable<A>,​java.lang.Iterable<A>>,​Fn1<A,​?>>, Cartesian<A,​Fn1<java.lang.Iterable<A>,​java.lang.Iterable<A>>,​Fn1<?,​?>>, Cocartesian<A,​Fn1<java.lang.Iterable<A>,​java.lang.Iterable<A>>,​Fn1<?,​?>>, Contravariant<A,​Profunctor<?,​Fn1<java.lang.Iterable<A>,​java.lang.Iterable<A>>,​Fn1<?,​?>>>, Functor<Fn1<java.lang.Iterable<A>,​java.lang.Iterable<A>>,​Fn1<A,​?>>, Profunctor<A,​Fn1<java.lang.Iterable<A>,​java.lang.Iterable<A>>,​Fn1<?,​?>>, Monad<Fn1<java.lang.Iterable<A>,​java.lang.Iterable<A>>,​Fn1<A,​?>>, MonadReader<A,​Fn1<java.lang.Iterable<A>,​java.lang.Iterable<A>>,​Fn1<A,​?>>, MonadRec<Fn1<java.lang.Iterable<A>,​java.lang.Iterable<A>>,​Fn1<A,​?>>, MonadWriter<A,​Fn1<java.lang.Iterable<A>,​java.lang.Iterable<A>>,​Fn1<A,​?>>

    public final class Snoc<A>
    extends java.lang.Object
    implements Fn2<A,​java.lang.Iterable<A>,​java.lang.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.

    • Field Detail

      • INSTANCE

        private static final Snoc<?> INSTANCE
    • Constructor Detail

      • Snoc

        private Snoc()
    • Method Detail

      • checkedApply

        public java.lang.Iterable<A> checkedApply​(A a,
                                                  java.lang.Iterable<A> as)
        Specified by:
        checkedApply in interface Fn2<A,​java.lang.Iterable<A>,​java.lang.Iterable<A>>
      • snoc

        public static <A> Snoc<A> snoc()
      • snoc

        public static <A> Fn1<java.lang.Iterable<A>,​java.lang.Iterable<A>> snoc​(A a)
      • snoc

        public static <A> java.lang.Iterable<A> snoc​(A a,
                                                     java.lang.Iterable<A> as)