Class Empty<V,​A>


  • public final class Empty<V,​A>
    extends FingerTree<V,​A>
    The empty tree.
    • 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.
      • head

        public A head()
        Description copied from class: FingerTree
        The first element of this tree. This is an O(1) operation.
        Specified by:
        head in class FingerTree<V,​A>
        Returns:
        The first element if this tree is nonempty, otherwise throws an error.
      • last

        public A last()
        Description copied from class: FingerTree
        The last element of this tree. This is an O(1) operation.
        Specified by:
        last in class FingerTree<V,​A>
        Returns:
        The last element if this tree is nonempty, otherwise throws an error.
      • tail

        public FingerTree<V,​A> tail()
        Description copied from class: FingerTree
        The tree without the first element. This is an O(1) operation.
        Specified by:
        tail in class FingerTree<V,​A>
        Returns:
        The tree without the first element if this tree is nonempty, otherwise throws an error.
      • init

        public FingerTree<V,​A> init()
        Description copied from class: FingerTree
        The tree without the last element. This is an O(1) operation.
        Specified by:
        init in class FingerTree<V,​A>
        Returns:
        The tree without the last element if this tree is nonempty, otherwise throws an error.
      • 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.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object