Class ScanLeft<A,B>
- java.lang.Object
-
- com.jnape.palatable.lambda.functions.builtin.fn3.ScanLeft<A,B>
-
- Type Parameters:
A
- The Iterable element typeB
- The accumulation type
- All Implemented Interfaces:
Fn1<Fn2<? super B,? super A,? extends B>,Fn1<B,Fn1<java.lang.Iterable<A>,java.lang.Iterable<B>>>>
,Fn2<Fn2<? super B,? super A,? extends B>,B,Fn1<java.lang.Iterable<A>,java.lang.Iterable<B>>>
,Fn3<Fn2<? super B,? super A,? extends B>,B,java.lang.Iterable<A>,java.lang.Iterable<B>>
,Applicative<Fn1<B,Fn1<java.lang.Iterable<A>,java.lang.Iterable<B>>>,Fn1<Fn2<? super B,? super A,? extends B>,?>>
,Cartesian<Fn2<? super B,? super A,? extends B>,Fn1<B,Fn1<java.lang.Iterable<A>,java.lang.Iterable<B>>>,Fn1<?,?>>
,Cocartesian<Fn2<? super B,? super A,? extends B>,Fn1<B,Fn1<java.lang.Iterable<A>,java.lang.Iterable<B>>>,Fn1<?,?>>
,Contravariant<Fn2<? super B,? super A,? extends B>,Profunctor<?,Fn1<B,Fn1<java.lang.Iterable<A>,java.lang.Iterable<B>>>,Fn1<?,?>>>
,Functor<Fn1<B,Fn1<java.lang.Iterable<A>,java.lang.Iterable<B>>>,Fn1<Fn2<? super B,? super A,? extends B>,?>>
,Profunctor<Fn2<? super B,? super A,? extends B>,Fn1<B,Fn1<java.lang.Iterable<A>,java.lang.Iterable<B>>>,Fn1<?,?>>
,Monad<Fn1<B,Fn1<java.lang.Iterable<A>,java.lang.Iterable<B>>>,Fn1<Fn2<? super B,? super A,? extends B>,?>>
,MonadReader<Fn2<? super B,? super A,? extends B>,Fn1<B,Fn1<java.lang.Iterable<A>,java.lang.Iterable<B>>>,Fn1<Fn2<? super B,? super A,? extends B>,?>>
,MonadRec<Fn1<B,Fn1<java.lang.Iterable<A>,java.lang.Iterable<B>>>,Fn1<Fn2<? super B,? super A,? extends B>,?>>
,MonadWriter<Fn2<? super B,? super A,? extends B>,Fn1<B,Fn1<java.lang.Iterable<A>,java.lang.Iterable<B>>>,Fn1<Fn2<? super B,? super A,? extends B>,?>>
public final class ScanLeft<A,B> extends java.lang.Object implements Fn3<Fn2<? super B,? super A,? extends B>,B,java.lang.Iterable<A>,java.lang.Iterable<B>>
Given anIterable
ofA
s, a starting valueB
, and a
, iteratively accumulate over theFn2
<B, A, B>Iterable
, collecting each function application result, finally returning anIterable
of all the results. Note that, as the name implies, this function accumulates from left to right, such thatscanLeft(f, 0, asList(1,2,3,4,5))
is evaluated as0, f(0, 1), f(f(0, 1), 2), f(f(f(0, 1), 2), 3), f(f(f(f(0, 1), 2), 3), 4), f(f(f(f(f(0, 1), 2), 3), 4), 5)
.- See Also:
FoldLeft
-
-
Constructor Summary
Constructors Modifier Constructor Description private
ScanLeft()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Iterable<B>
checkedApply(Fn2<? super B,? super A,? extends B> fn, B b, java.lang.Iterable<A> as)
static <A,B>
ScanLeft<A,B>scanLeft()
static <A,B>
Fn2<B,java.lang.Iterable<A>,java.lang.Iterable<B>>scanLeft(Fn2<? super B,? super A,? extends B> fn)
static <A,B>
Fn1<java.lang.Iterable<A>,java.lang.Iterable<B>>scanLeft(Fn2<? super B,? super A,? extends B> fn, B b)
static <A,B>
java.lang.Iterable<B>scanLeft(Fn2<? super B,? super A,? extends B> fn, B b, java.lang.Iterable<A> as)
-
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
-
Methods inherited from interface com.jnape.palatable.lambda.functions.Fn2
checkedApply, toBiFunction
-
-
-
-
Field Detail
-
INSTANCE
private static final ScanLeft<?,?> INSTANCE
-
-
Method Detail
-
checkedApply
public java.lang.Iterable<B> checkedApply(Fn2<? super B,? super A,? extends B> fn, B b, java.lang.Iterable<A> as)
-
scanLeft
public static <A,B> ScanLeft<A,B> scanLeft()
-
scanLeft
public static <A,B> Fn2<B,java.lang.Iterable<A>,java.lang.Iterable<B>> scanLeft(Fn2<? super B,? super A,? extends B> fn)
-
scanLeft
public static <A,B> Fn1<java.lang.Iterable<A>,java.lang.Iterable<B>> scanLeft(Fn2<? super B,? super A,? extends B> fn, B b)
-
scanLeft
public static <A,B> java.lang.Iterable<B> scanLeft(Fn2<? super B,? super A,? extends B> fn, B b, java.lang.Iterable<A> as)
-
-