c

cats

NonEmptyReducible

abstract class NonEmptyReducible[F[_], G[_]] extends Reducible[F]

This class defines a Reducible[F] in terms of a Foldable[G] together with a split method, F[A] => (A, G[A]).

This class can be used on any type where the first value (A) and the "rest" of the values (G[A]) can be easily found.

Linear Supertypes
Reducible[F], Foldable[F], Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. NonEmptyReducible
  2. Reducible
  3. Foldable
  4. Serializable
  5. Serializable
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new NonEmptyReducible()(implicit G: Foldable[G])

Abstract Value Members

  1. abstract def split[A](fa: F[A]): (A, G[A])

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. def combineAll[A](fa: F[A])(implicit arg0: Monoid[A]): A

    Alias for fold.

    Alias for fold.

    Definition Classes
    Foldable
  7. def compose[G[_]](implicit arg0: Reducible[G]): Reducible[[α]F[G[α]]]
    Definition Classes
    Reducible
  8. def compose[G[_]](implicit arg0: Foldable[G]): Foldable[[α]F[G[α]]]
    Definition Classes
    Foldable
  9. def dropWhile_[A](fa: F[A])(p: (A) ⇒ Boolean): List[A]

    Convert F[A] to a List[A], dropping all initial elements which match p.

    Convert F[A] to a List[A], dropping all initial elements which match p.

    Definition Classes
    Foldable
  10. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  11. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  12. def exists[A](fa: F[A])(p: (A) ⇒ Boolean): Boolean

    Check whether at least one element satisfies the predicate.

    Check whether at least one element satisfies the predicate.

    If there are no elements, the result is false.

    Definition Classes
    Foldable
  13. def filter_[A](fa: F[A])(p: (A) ⇒ Boolean): List[A]

    Convert F[A] to a List[A], only including elements which match p.

    Convert F[A] to a List[A], only including elements which match p.

    Definition Classes
    Foldable
  14. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  15. def find[A](fa: F[A])(f: (A) ⇒ Boolean): Option[A]

    Find the first element matching the predicate, if one exists.

    Find the first element matching the predicate, if one exists.

    Definition Classes
    Foldable
  16. def fold[A](fa: F[A])(implicit A: Monoid[A]): A

    Fold implemented using the given Monoid[A] instance.

    Fold implemented using the given Monoid[A] instance.

    Definition Classes
    Foldable
  17. def foldK[G[_], A](fga: F[G[A]])(implicit G: MonoidK[G]): G[A]

    Fold implemented using the given MonoidK[G] instance.

    Fold implemented using the given MonoidK[G] instance.

    This method is identical to fold, except that we use the universal monoid (MonoidK[G]) to get a Monoid[G[A]] instance.

    For example:

    scala> import cats.implicits._
    scala> val F = Foldable[List]
    scala> F.foldK(List(1 :: 2 :: Nil, 3 :: 4 :: 5 :: Nil))
    res0: List[Int] = List(1, 2, 3, 4, 5)
    Definition Classes
    Foldable
  18. def foldLeft[A, B](fa: F[A], b: B)(f: (B, A) ⇒ B): B

    Left associative fold on 'F' using the function 'f'.

    Left associative fold on 'F' using the function 'f'.

    Definition Classes
    NonEmptyReducibleFoldable
  19. def foldM[G[_], A, B](fa: F[A], z: B)(f: (B, A) ⇒ G[B])(implicit G: Monad[G]): G[B]

    Left associative monadic folding on F.

    Left associative monadic folding on F.

    The default implementation of this is based on foldLeft, and thus will always fold across the entire structure. Certain structures are able to implement this in such a way that folds can be short-circuited (not traverse the entirety of the structure), depending on the G result produced at a given step.

    Definition Classes
    Foldable
  20. def foldMap[A, B](fa: F[A])(f: (A) ⇒ B)(implicit B: Monoid[B]): B

    Fold implemented by mapping A values into B and then combining them using the given Monoid[B] instance.

    Fold implemented by mapping A values into B and then combining them using the given Monoid[B] instance.

    Definition Classes
    Foldable
  21. def foldRight[A, B](fa: F[A], lb: Eval[B])(f: (A, Eval[B]) ⇒ Eval[B]): Eval[B]

    Right associative lazy fold on F using the folding function 'f'.

    Right associative lazy fold on F using the folding function 'f'.

    This method evaluates lb lazily (in some cases it will not be needed), and returns a lazy value. We are using (A, Eval[B]) => Eval[B] to support laziness in a stack-safe way. Chained computation should be performed via .map and .flatMap.

    For more detailed information about how this method works see the documentation for Eval[_].

    Definition Classes
    NonEmptyReducibleFoldable
  22. def forall[A](fa: F[A])(p: (A) ⇒ Boolean): Boolean

    Check whether all elements satisfy the predicate.

    Check whether all elements satisfy the predicate.

    If there are no elements, the result is true.

    Definition Classes
    Foldable
  23. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  24. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  25. def isEmpty[A](fa: F[A]): Boolean

    Returns true if there are no elements.

    Returns true if there are no elements. Otherwise false.

    Definition Classes
    Foldable
  26. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  27. def maximum[A](fa: F[A])(implicit A: Order[A]): A
    Definition Classes
    Reducible
  28. def maximumOption[A](fa: F[A])(implicit A: Order[A]): Option[A]

    Find the maximum A item in this structure according to the Order[A].

    Find the maximum A item in this structure according to the Order[A].

    returns

    None if the structure is empty, otherwise the maximum element wrapped in a Some.

    Definition Classes
    Foldable
    See also

    minimumOption for minimum instead of maximum.

    Reducible#maximum for a version that doesn't need to return an Option for structures that are guaranteed to be non-empty.

  29. def minimum[A](fa: F[A])(implicit A: Order[A]): A
    Definition Classes
    Reducible
  30. def minimumOption[A](fa: F[A])(implicit A: Order[A]): Option[A]

    Find the minimum A item in this structure according to the Order[A].

    Find the minimum A item in this structure according to the Order[A].

    returns

    None if the structure is empty, otherwise the minimum element wrapped in a Some.

    Definition Classes
    Foldable
    See also

    maximumOption for maximum instead of minimum.

    Reducible#minimum for a version that doesn't need to return an Option for structures that are guaranteed to be non-empty.

  31. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  32. def nonEmpty[A](fa: F[A]): Boolean
    Definition Classes
    Foldable
  33. final def notify(): Unit
    Definition Classes
    AnyRef
  34. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  35. def reduce[A](fa: F[A])(implicit A: Semigroup[A]): A

    Reduce a F[A] value using the given Semigroup[A].

    Reduce a F[A] value using the given Semigroup[A].

    Definition Classes
    Reducible
  36. def reduceK[G[_], A](fga: F[G[A]])(implicit G: SemigroupK[G]): G[A]

    Reduce a F[G[A]] value using SemigroupK[G], a universal semigroup for G[_].

    Reduce a F[G[A]] value using SemigroupK[G], a universal semigroup for G[_].

    This method is a generalization of reduce.

    Definition Classes
    Reducible
  37. def reduceLeft[A](fa: F[A])(f: (A, A) ⇒ A): A

    Left-associative reduction on F using the function f.

    Left-associative reduction on F using the function f.

    Implementations should override this method when possible.

    Definition Classes
    Reducible
  38. def reduceLeftM[G[_], A, B](fa: F[A])(f: (A) ⇒ G[B])(g: (B, A) ⇒ G[B])(implicit G: FlatMap[G]): G[B]

    Monadic variant of reduceLeftTo

    Monadic variant of reduceLeftTo

    Definition Classes
    Reducible
  39. def reduceLeftOption[A](fa: F[A])(f: (A, A) ⇒ A): Option[A]

    Reduce the elements of this structure down to a single value by applying the provided aggregation function in a left-associative manner.

    Reduce the elements of this structure down to a single value by applying the provided aggregation function in a left-associative manner.

    returns

    None if the structure is empty, otherwise the result of combining the cumulative left-associative result of the f operation over all of the elements.

    Definition Classes
    Foldable
    See also

    Reducible#reduceLeft for a version that doesn't need to return an Option for structures that are guaranteed to be non-empty. Example:

    scala> import cats.implicits._
    scala> val l = List(6, 3, 2)
    This is equivalent to (6 - 3) - 2
    scala> Foldable[List].reduceLeftOption(l)(_ - _)
    res0: Option[Int] = Some(1)
    
    scala> Foldable[List].reduceLeftOption(List.empty[Int])(_ - _)
    res1: Option[Int] = None

    reduceRightOption for a right-associative alternative.

  40. def reduceLeftTo[A, B](fa: F[A])(f: (A) ⇒ B)(g: (B, A) ⇒ B): B

    Apply f to the "initial element" of fa and combine it with every other value using the given function g.

    Apply f to the "initial element" of fa and combine it with every other value using the given function g.

    Definition Classes
    NonEmptyReducibleReducible
  41. def reduceLeftToOption[A, B](fa: F[A])(f: (A) ⇒ B)(g: (B, A) ⇒ B): Option[B]

    Overriden from Foldable[_] for efficiency.

    Overriden from Foldable[_] for efficiency.

    Definition Classes
    ReducibleFoldable
  42. def reduceMap[A, B](fa: F[A])(f: (A) ⇒ B)(implicit B: Semigroup[B]): B

    Apply f to each element of fa and combine them using the given Semigroup[B].

    Apply f to each element of fa and combine them using the given Semigroup[B].

    Definition Classes
    Reducible
  43. def reduceRight[A](fa: F[A])(f: (A, Eval[A]) ⇒ Eval[A]): Eval[A]

    Right-associative reduction on F using the function f.

    Right-associative reduction on F using the function f.

    Definition Classes
    Reducible
  44. def reduceRightOption[A](fa: F[A])(f: (A, Eval[A]) ⇒ Eval[A]): Eval[Option[A]]

    Reduce the elements of this structure down to a single value by applying the provided aggregation function in a right-associative manner.

    Reduce the elements of this structure down to a single value by applying the provided aggregation function in a right-associative manner.

    returns

    None if the structure is empty, otherwise the result of combining the cumulative right-associative result of the f operation over the A elements.

    Definition Classes
    Foldable
    See also

    Reducible#reduceRight for a version that doesn't need to return an Option for structures that are guaranteed to be non-empty. Example:

    scala> import cats.implicits._
    scala> val l = List(6, 3, 2)
    This is eqivalent to 6 - (3 - 2)
    scala> Foldable[List].reduceRightOption(l)((current, rest) => rest.map(current - _)).value
    res0: Option[Int] = Some(5)
    
    scala> Foldable[List].reduceRightOption(List.empty[Int])((current, rest) => rest.map(current - _)).value
    res1: Option[Int] = None

    reduceLeftOption for a left-associative alternative

  45. def reduceRightTo[A, B](fa: F[A])(f: (A) ⇒ B)(g: (A, Eval[B]) ⇒ Eval[B]): Eval[B]

    Apply f to the "initial element" of fa and lazily combine it with every other value using the given function g.

    Apply f to the "initial element" of fa and lazily combine it with every other value using the given function g.

    Definition Classes
    NonEmptyReducibleReducible
  46. def reduceRightToOption[A, B](fa: F[A])(f: (A) ⇒ B)(g: (A, Eval[B]) ⇒ Eval[B]): Eval[Option[B]]

    Overriden from Foldable[_] for efficiency.

    Overriden from Foldable[_] for efficiency.

    Definition Classes
    ReducibleFoldable
  47. def sequence1_[G[_], A](fga: F[G[A]])(implicit G: Apply[G]): G[Unit]

    Sequence F[G[A]] using Apply[G].

    Sequence F[G[A]] using Apply[G].

    This method is similar to Foldable.sequence_ but requires only an Apply instance for G instead of Applicative. See the traverse1_ documentation for a description of the differences.

    Definition Classes
    Reducible
  48. def sequenceU_[GA](fa: F[GA])(implicit U: Unapply[Applicative, GA]): M[Unit]

    Behaves like sequence_, but uses Unapply to find the Applicative instance for G - used when G is a type constructor with two or more parameters such as scala.util.Either

    Behaves like sequence_, but uses Unapply to find the Applicative instance for G - used when G is a type constructor with two or more parameters such as scala.util.Either

    scala> import cats.implicits._
    scala> val F = Foldable[List]
    scala> F.sequenceU_(List(Either.right[String, Int](333), Right(444)))
    res0: Either[String, Unit] = Right(())
    scala> F.sequenceU_(List(Either.right[String, Int](333), Left("boo")))
    res1: Either[String, Unit] = Left(boo)

    Note that using sequence_ instead of sequenceU_ would not compile without explicitly passing in the type parameters - the type checker has trouble inferring the appropriate instance.

    Definition Classes
    Foldable
  49. def sequence_[G[_], A](fga: F[G[A]])(implicit arg0: Applicative[G]): G[Unit]

    Sequence F[G[A]] using Applicative[G].

    Sequence F[G[A]] using Applicative[G].

    This is similar to traverse_ except it operates on F[G[A]] values, so no additional functions are needed.

    For example:

    scala> import cats.implicits._
    scala> val F = Foldable[List]
    scala> F.sequence_(List(Option(1), Option(2), Option(3)))
    res0: Option[Unit] = Some(())
    scala> F.sequence_(List(Option(1), None, Option(3)))
    res1: Option[Unit] = None
    Definition Classes
    Foldable
  50. def size[A](fa: F[A]): Long

    The size of this Foldable.

    The size of this Foldable.

    This is overriden in structures that have more efficient size implementations (e.g. Vector, Set, Map).

    Note: will not terminate for infinite-sized collections.

    Definition Classes
    Foldable
  51. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  52. def takeWhile_[A](fa: F[A])(p: (A) ⇒ Boolean): List[A]

    Convert F[A] to a List[A], retaining only initial elements which match p.

    Convert F[A] to a List[A], retaining only initial elements which match p.

    Definition Classes
    Foldable
  53. def toList[A](fa: F[A]): List[A]

    Convert F[A] to a List[A].

    Convert F[A] to a List[A].

    Definition Classes
    Foldable
  54. def toNonEmptyList[A](fa: F[A]): NonEmptyList[A]
    Definition Classes
    Reducible
  55. def toString(): String
    Definition Classes
    AnyRef → Any
  56. def traverse1_[G[_], A, B](fa: F[A])(f: (A) ⇒ G[B])(implicit G: Apply[G]): G[Unit]

    Traverse F[A] using Apply[G].

    Traverse F[A] using Apply[G].

    A values will be mapped into G[B] and combined using Applicative#map2.

    This method is similar to Foldable.traverse_. There are two main differences:

    1. We only need an Apply instance for G here, since we don't need to call Applicative.pure for a starting value. 2. This performs a strict left-associative traversal and thus must always traverse the entire data structure. Prefer Foldable.traverse_ if you have an Applicative instance available for G and want to take advantage of short-circuiting the traversal.

    Definition Classes
    Reducible
  57. def traverseU_[A, GB](fa: F[A])(f: (A) ⇒ GB)(implicit U: Unapply[Applicative, GB]): M[Unit]

    Behaves like traverse_, but uses Unapply to find the Applicative instance for G - used when G is a type constructor with two or more parameters such as scala.util.Either

    Behaves like traverse_, but uses Unapply to find the Applicative instance for G - used when G is a type constructor with two or more parameters such as scala.util.Either

    scala> import cats.implicits._
    scala> def parseInt(s: String): Either[String, Int] =
         |   try { Right(s.toInt) }
         |   catch { case _: NumberFormatException => Left("boo") }
    scala> val F = Foldable[List]
    scala> F.traverseU_(List("333", "444"))(parseInt)
    res0: Either[String, Unit] = Right(())
    scala> F.traverseU_(List("333", "zzz"))(parseInt)
    res1: Either[String, Unit] = Left(boo)

    Note that using traverse_ instead of traverseU_ would not compile without explicitly passing in the type parameters - the type checker has trouble inferring the appropriate instance.

    Definition Classes
    Foldable
  58. def traverse_[G[_], A, B](fa: F[A])(f: (A) ⇒ G[B])(implicit G: Applicative[G]): G[Unit]

    Traverse F[A] using Applicative[G].

    Traverse F[A] using Applicative[G].

    A values will be mapped into G[B] and combined using Applicative#map2.

    For example:

    scala> import cats.implicits._
    scala> def parseInt(s: String): Option[Int] = Either.catchOnly[NumberFormatException](s.toInt).toOption
    scala> val F = Foldable[List]
    scala> F.traverse_(List("333", "444"))(parseInt)
    res0: Option[Unit] = Some(())
    scala> F.traverse_(List("333", "zzz"))(parseInt)
    res1: Option[Unit] = None

    This method is primarily useful when G[_] represents an action or effect, and the specific A aspect of G[A] is not otherwise needed.

    Definition Classes
    Foldable
  59. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  60. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  61. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Reducible[F]

Inherited from Foldable[F]

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped