Class FoldLeft<A,B>
java.lang.Object
com.jnape.palatable.lambda.functions.builtin.fn3.FoldLeft<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<Iterable<A>, B>>> Fn2<Fn2<? super B,
,? super A, ? extends B>, B, Fn1<Iterable<A>, B>> Fn3<Fn2<? super B,
,? super A, ? extends B>, B, Iterable<A>, B> Applicative<Fn1<B,
,Fn1<Iterable<A>, B>>, Fn1<Fn2<? super B, ? super A, ? extends B>, ?>> Cartesian<Fn2<? super B,
,? super A, ? extends B>, Fn1<B, Fn1<Iterable<A>, B>>, Fn1<?, ?>> Cocartesian<Fn2<? super B,
,? super A, ? extends B>, Fn1<B, Fn1<Iterable<A>, B>>, Fn1<?, ?>> Contravariant<Fn2<? super B,
,? super A, ? extends B>, Profunctor<?, Fn1<B, Fn1<Iterable<A>, B>>, Fn1<?, ?>>> Functor<Fn1<B,
,Fn1<Iterable<A>, B>>, Fn1<Fn2<? super B, ? super A, ? extends B>, ?>> Profunctor<Fn2<? super B,
,? super A, ? extends B>, Fn1<B, Fn1<Iterable<A>, B>>, Fn1<?, ?>> Monad<Fn1<B,
,Fn1<Iterable<A>, B>>, Fn1<Fn2<? super B, ? super A, ? extends B>, ?>> MonadReader<Fn2<? super B,
,? super A, ? extends B>, Fn1<B, Fn1<Iterable<A>, B>>, Fn1<Fn2<? super B, ? super A, ? extends B>, ?>> MonadRec<Fn1<B,
,Fn1<Iterable<A>, B>>, Fn1<Fn2<? super B, ? super A, ? extends B>, ?>> MonadWriter<Fn2<? super B,
? super A, ? extends B>, Fn1<B, Fn1<Iterable<A>, B>>, Fn1<Fn2<? super B, ? super A, ? extends B>, ?>>
public final class FoldLeft<A,B>
extends Object
implements Fn3<Fn2<? super B,? super A,? extends B>,B,Iterable<A>,B>
Given an
Iterable
of A
s, a starting value B
, and a
Fn2
<B, A, B>
, iteratively accumulate over the Iterable
, ultimately returning
a final B
value. If the Iterable
is empty, just return the starting B
value.
Note that, as the name implies, this function accumulates from left to right, such that foldLeft(f, 0,
asList(1, 2, 3, 4, 5))
is evaluated as f(f(f(f(f(0, 1), 2), 3), 4), 5)
.
For more information, read about Catamorphisms.
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
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