Interface Foldable<T>

    • Method Summary

      Modifier and Type Method Description
      default T fold​(T zero, java.util.function.BiFunction<? super T,​? super T,​? extends T> combine)
      Deprecated.
      Folds this elements using the given associative binary operator, starting with zero and successively calling combine.
      <U> U foldLeft​(U zero, java.util.function.BiFunction<? super U,​? super T,​? extends U> combine)
      Deprecated.
      Folds this elements from the left, starting with zero and successively calling combine.
      <U> U foldRight​(U zero, java.util.function.BiFunction<? super T,​? super U,​? extends U> combine)
      Deprecated.
      Folds this elements from the right, starting with zero and successively calling combine.
      default T reduce​(java.util.function.BiFunction<? super T,​? super T,​? extends T> op)
      Deprecated.
      Accumulates the elements of this Foldable by successively calling the given operation op.
      T reduceLeft​(java.util.function.BiFunction<? super T,​? super T,​? extends T> op)
      Deprecated.
      Accumulates the elements of this Foldable by successively calling the given operation op from the left.
      Option<T> reduceLeftOption​(java.util.function.BiFunction<? super T,​? super T,​? extends T> op)
      Deprecated.
      Accumulates the elements of this Foldable by successively calling the given operation op from the left.
      default Option<T> reduceOption​(java.util.function.BiFunction<? super T,​? super T,​? extends T> op)
      Deprecated.
      Accumulates the elements of this Foldable by successively calling the given operation op.
      T reduceRight​(java.util.function.BiFunction<? super T,​? super T,​? extends T> op)
      Deprecated.
      Accumulates the elements of this Foldable by successively calling the given operation op from the right.
      Option<T> reduceRightOption​(java.util.function.BiFunction<? super T,​? super T,​? extends T> op)
      Deprecated.
      Accumulates the elements of this Foldable by successively calling the given operation op from the right.
    • Method Detail

      • fold

        default T fold​(T zero,
                       java.util.function.BiFunction<? super T,​? super T,​? extends T> combine)
        Deprecated.
        Folds this elements using the given associative binary operator, starting with zero and successively calling combine. The order in which the elements are combined is non-deterministic.

        The methods fold, foldLeft and foldRight differ in how the elements are combined:

        • foldLeft(Object, BiFunction) associates to the left
        • foldRight(Object, BiFunction) associates to the right
        • fold takes an associative combine operation because the traversal of elements is unordered/non-deterministic. The associativity guarantees that in each case the result will be the same, it does not matter in which order the elements are combined. Generally binary operators aren't associative, i.e. the result may differ if elements are combined in a different order.

          We say that this Foldable and the associative combine operation form a Monoid.

        Example:
         
         // = 6
         Set(1, 2, 3).fold(0, (a, b) -> a + b);
          
        Parameters:
        zero - A zero element to start with.
        combine - A function which combines elements.
        Returns:
        a folded value
        Throws:
        java.lang.NullPointerException - if combine is null
      • foldLeft

        <U> U foldLeft​(U zero,
                       java.util.function.BiFunction<? super U,​? super T,​? extends U> combine)
        Deprecated.
        Folds this elements from the left, starting with zero and successively calling combine.

        Example:

         
         // = "cba!"
         List("a", "b", "c").foldLeft("!", (xs, x) -> x + xs)
          
        Type Parameters:
        U - the type to fold over
        Parameters:
        zero - A zero element to start with.
        combine - A function which combines elements.
        Returns:
        a folded value
        Throws:
        java.lang.NullPointerException - if combine is null
      • foldRight

        <U> U foldRight​(U zero,
                        java.util.function.BiFunction<? super T,​? super U,​? extends U> combine)
        Deprecated.
        Folds this elements from the right, starting with zero and successively calling combine.

        Example:

         
         // = "!cba"
         List("a", "b", "c").foldRight("!", (x, xs) -> xs + x)
          
        Type Parameters:
        U - the type of the folded value
        Parameters:
        zero - A zero element to start with.
        combine - A function which combines elements.
        Returns:
        a folded value
        Throws:
        java.lang.NullPointerException - if combine is null
      • reduce

        default T reduce​(java.util.function.BiFunction<? super T,​? super T,​? extends T> op)
        Deprecated.
        Accumulates the elements of this Foldable by successively calling the given operation op. The order of element iteration is undetermined.
        Parameters:
        op - A BiFunction of type T
        Returns:
        the reduced value.
        Throws:
        java.util.NoSuchElementException - if this is empty
        java.lang.NullPointerException - if op is null
      • reduceOption

        default Option<T> reduceOption​(java.util.function.BiFunction<? super T,​? super T,​? extends T> op)
        Deprecated.
        Accumulates the elements of this Foldable by successively calling the given operation op. The order of element iteration is undetermined.
        Parameters:
        op - A BiFunction of type T
        Returns:
        Some of reduced value or None if the Foldable is empty.
        Throws:
        java.lang.NullPointerException - if op is null
      • reduceLeft

        T reduceLeft​(java.util.function.BiFunction<? super T,​? super T,​? extends T> op)
        Deprecated.
        Accumulates the elements of this Foldable by successively calling the given operation op from the left.
        Parameters:
        op - A BiFunction of type T
        Returns:
        the reduced value.
        Throws:
        java.util.NoSuchElementException - if this is empty
        java.lang.NullPointerException - if op is null
      • reduceLeftOption

        Option<T> reduceLeftOption​(java.util.function.BiFunction<? super T,​? super T,​? extends T> op)
        Deprecated.
        Accumulates the elements of this Foldable by successively calling the given operation op from the left.
        Parameters:
        op - A BiFunction of type T
        Returns:
        Some of reduced value or None if the Foldable is empty.
        Throws:
        java.lang.NullPointerException - if op is null
      • reduceRight

        T reduceRight​(java.util.function.BiFunction<? super T,​? super T,​? extends T> op)
        Deprecated.
        Accumulates the elements of this Foldable by successively calling the given operation op from the right.
        Parameters:
        op - An operation of type T
        Returns:
        the reduced value.
        Throws:
        java.util.NoSuchElementException - if this is empty
        java.lang.NullPointerException - if op is null
      • reduceRightOption

        Option<T> reduceRightOption​(java.util.function.BiFunction<? super T,​? super T,​? extends T> op)
        Deprecated.
        Accumulates the elements of this Foldable by successively calling the given operation op from the right.
        Parameters:
        op - An operation of type T
        Returns:
        Some of reduced value or None.
        Throws:
        java.lang.NullPointerException - if op is null