trait TAFoldLeft[F[_, _], G[_, _], Z, I] extends AnyRef
A type-aligned foldLeft.
- F
the type of each element in the input structure. For example
Function1
.- G
the type to accumulate into. It has type parameters to support maintaining type-aligned properties in the accumulated object.
- Z
the input type of the first element in the structure. Your TAFoldLeft.init method will need to have an output type that lines up with the input type of the first element of the list, since the fold starts from the left.
- I
the input type of the final accumulated structure. Your TAFoldLeft.init method will define what this needs to be.
- Self Type
- TAFoldLeft[F, G, Z, I]
- Source
- TAFoldLeft.scala
- See also
TAList.foldLeft for a foldLeft across a TAList using an instance of this
TAFoldRight for a foldRight counterpart
TAReduceLeft for a reduceLeft (non-empty structure) counterpart
- Alphabetic
- By Inheritance
- TAFoldLeft
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
init: G[I, Z]
The initial accumulation value.
The initial accumulation value. Since this will be consumed along with the the first element in the structure, its output type needs to line up with the input type of the first element.
-
abstract
def
step[P, R](acc: G[I, P], f: F[P, R]): G[I, R]
Update the accumulated result, given the next element from the structure.
Update the accumulated result, given the next element from the structure.
- acc
the current accumulated value
- f
the next element in the structure
- returns
an updated accumulated value
Concrete Value Members
- def toReduce: TAReduceLeft[F, G, Z, I]