Class Iterate<A>

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

    public final class Iterate<A>
    extends java.lang.Object
    implements Fn2<Fn1<? super A,​? extends A>,​A,​java.lang.Iterable<A>>
    Lazily generate an infinite Iterable from the successive applications of the function first to the initial seed value, then to the result, and so on; i.e., the result of iterate(x -> x + 1, 0) would produce an infinite Iterable over the elements 0, 1, 2, 3, ... and so on.
    • Field Detail

      • INSTANCE

        private static final Iterate<?> INSTANCE
    • Constructor Detail

      • Iterate

        private Iterate()
    • Method Detail

      • checkedApply

        public java.lang.Iterable<A> checkedApply​(Fn1<? super A,​? extends A> fn,
                                                  A seed)
        Specified by:
        checkedApply in interface Fn2<Fn1<? super A,​? extends A>,​A,​java.lang.Iterable<A>>
      • iterate

        public static <A> Iterate<A> iterate()
      • iterate

        public static <A> Fn1<A,​java.lang.Iterable<A>> iterate​(Fn1<? super A,​? extends A> fn)
      • iterate

        public static <A> java.lang.Iterable<A> iterate​(Fn1<? super A,​? extends A> fn,
                                                        A seed)