fj.data.fingertrees

## Class Empty<V,A>

• ```public final class Empty<V,A>
extends FingerTree<V,A>```
The empty tree.
• ### Method Summary

All Methods
Modifier and Type Method and Description
`FingerTree<V,A>` `append(FingerTree<V,A> t)`
Appends one finger tree to another.
`FingerTree<V,A>` `cons(A a)`
Adds the given element to this tree as the first element.
`<B> B` ```foldLeft(F<B,F<A,B>> bff, B z)```
Folds the tree to the left with the given function and the given initial element.
`<B> B` ```foldRight(F<A,F<B,B>> aff, B z)```
Folds the tree to the right with the given function and the given initial element.
`P2<java.lang.Integer,A>` ```lookup(F<V,java.lang.Integer> o, int i)```
`<B> FingerTree<V,B>` ```map(F<A,B> abf, Measured<V,B> m)```
Maps the given function across this tree, measuring with the given Measured instance.
`<B> B` ```match(F<Empty<V,A>,B> empty, F<Single<V,A>,B> single, F<Deep<V,A>,B> deep)```
Pattern matching on the structure of this tree.
`V` `measure()`
Returns zero.
`A` `reduceLeft(F<A,F<A,A>> aff)`
Folds the tree to the left with the given function.
`A` `reduceRight(F<A,F<A,A>> aff)`
Folds the tree to the right with the given function.
`FingerTree<V,A>` `snoc(A a)`
Adds the given element to this tree as the last element.
• ### Methods inherited from class fj.data.fingertrees.FingerTree

`isEmpty, measured, mkTree`
• ### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• ### Method Detail

• #### cons

`public FingerTree<V,A> cons(A a)`
Description copied from class: `FingerTree`
Adds the given element to this tree as the first element.
Specified by:
`cons` in class `FingerTree<V,A>`
Parameters:
`a` - The element to add to the front of this tree.
Returns:
A new tree with the given element at the front.
• #### snoc

`public FingerTree<V,A> snoc(A a)`
Description copied from class: `FingerTree`
Adds the given element to this tree as the last element.
Specified by:
`snoc` in class `FingerTree<V,A>`
Parameters:
`a` - The element to add to the end of this tree.
Returns:
A new tree with the given element at the end.
• #### append

`public FingerTree<V,A> append(FingerTree<V,A> t)`
Description copied from class: `FingerTree`
Appends one finger tree to another.
Specified by:
`append` in class `FingerTree<V,A>`
Parameters:
`t` - A finger tree to append to this one.
Returns:
A new finger tree which is a concatenation of this tree and the given tree.
• #### lookup

```public P2<java.lang.Integer,A> lookup(F<V,java.lang.Integer> o,
int i)```
Specified by:
`lookup` in class `FingerTree<V,A>`
• #### foldRight

```public <B> B foldRight(F<A,F<B,B>> aff,
B z)```
Description copied from class: `FingerTree`
Folds the tree to the right with the given function and the given initial element.
Specified by:
`foldRight` in class `FingerTree<V,A>`
Parameters:
`aff` - A function with which to fold the tree.
`z` - An initial element to apply to the fold.
Returns:
A reduction of this tree by applying the given function, associating to the right.
• #### reduceRight

`public A reduceRight(F<A,F<A,A>> aff)`
Description copied from class: `FingerTree`
Folds the tree to the right with the given function.
Specified by:
`reduceRight` in class `FingerTree<V,A>`
Parameters:
`aff` - A function with which to fold the tree.
Returns:
A reduction of this tree by applying the given function, associating to the right.
• #### foldLeft

```public <B> B foldLeft(F<B,F<A,B>> bff,
B z)```
Description copied from class: `FingerTree`
Folds the tree to the left with the given function and the given initial element.
Specified by:
`foldLeft` in class `FingerTree<V,A>`
Parameters:
`bff` - A function with which to fold the tree.
`z` - An initial element to apply to the fold.
Returns:
A reduction of this tree by applying the given function, associating to the left.
• #### reduceLeft

`public A reduceLeft(F<A,F<A,A>> aff)`
Description copied from class: `FingerTree`
Folds the tree to the left with the given function.
Specified by:
`reduceLeft` in class `FingerTree<V,A>`
Parameters:
`aff` - A function with which to fold the tree.
Returns:
A reduction of this tree by applying the given function, associating to the right.
• #### map

```public <B> FingerTree<V,B> map(F<A,B> abf,
Measured<V,B> m)```
Description copied from class: `FingerTree`
Maps the given function across this tree, measuring with the given Measured instance.
Specified by:
`map` in class `FingerTree<V,A>`
Parameters:
`abf` - A function to map across the values of this tree.
`m` - A measuring with which to annotate the tree.
Returns:
A new tree with the same structure as this tree, with each element transformed by the given function, and nodes annotated according to the given measuring.
• #### measure

`public V measure()`
Returns zero.
Specified by:
`measure` in class `FingerTree<V,A>`
Returns:
Zero.
• #### match

```public <B> B match(F<Empty<V,A>,B> empty,
F<Single<V,A>,B> single,
F<Deep<V,A>,B> deep)```
Pattern matching on the structure of this tree. Matches the empty tree.
Specified by:
`match` in class `FingerTree<V,A>`
Parameters:
`empty` - The function to apply to this empty tree.
`single` - A function to apply if this tree contains a single element.
`deep` - A function to apply if this tree contains more than one element.
Returns:
The result of the function that matches this tree structurally, applied to this tree.