Class

cats

NonEmptyReducible

Related Doc: package cats

Permalink

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])

    Permalink

Abstract Value Members

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

    Permalink

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. def combineAll[A](fa: F[A])(implicit arg0: Monoid[A]): A

    Permalink

    Alias for fold.

    Alias for fold.

    Definition Classes
    Foldable
  7. def compose[G[_]](implicit GG: Reducible[G]): Reducible[[α]F[G[α]]]

    Permalink

    Compose two Reducible instances into a new one.

    Compose two Reducible instances into a new one.

    Definition Classes
    Reducible
  8. def compose[G[_]](implicit ev: Foldable[G]): Foldable[[α]F[G[α]]]

    Permalink

    Compose this Foldable[F] with a Foldable[G] to create a Foldable[F[G]] instance.

    Compose this Foldable[F] with a Foldable[G] to create a Foldable[F[G]] instance.

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

    Permalink

    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

    Permalink
    Definition Classes
    AnyRef
  11. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  12. def exists[A](fa: F[A])(p: (A) ⇒ Boolean): Boolean

    Permalink

    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]

    Permalink

    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

    Permalink
    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]

    Permalink

    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

    Permalink

    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]

    Permalink

    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.std.list._
    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

    Permalink

    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]

    Permalink

    Left associative monadic folding on F.

    Left associative monadic folding on F.

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

    Permalink

    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]

    Permalink

    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

    Permalink

    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[_]

    Permalink
    Definition Classes
    AnyRef → Any
  24. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  25. def isEmpty[A](fa: F[A]): Boolean

    Permalink

    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

    Permalink
    Definition Classes
    Any
  27. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  28. def nonEmpty[A](fa: F[A]): Boolean

    Permalink
    Definition Classes
    Foldable
  29. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  30. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  31. def reduce[A](fa: F[A])(implicit A: Semigroup[A]): A

    Permalink

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

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

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

    Permalink

    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
  33. def reduceLeft[A](fa: F[A])(f: (A, A) ⇒ A): A

    Permalink

    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
  34. def reduceLeftTo[A, B](fa: F[A])(f: (A) ⇒ B)(g: (B, A) ⇒ B): B

    Permalink

    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
  35. def reduceLeftToOption[A, B](fa: F[A])(f: (A) ⇒ B)(g: (B, A) ⇒ B): Option[B]

    Permalink

    Overriden from Foldable[_] for efficiency.

    Overriden from Foldable[_] for efficiency.

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

    Permalink

    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
  37. def reduceRight[A](fa: F[A])(f: (A, Eval[A]) ⇒ Eval[A]): Eval[A]

    Permalink

    Right-associative reduction on F using the function f.

    Right-associative reduction on F using the function f.

    Definition Classes
    Reducible
  38. def reduceRightTo[A, B](fa: F[A])(f: (A) ⇒ B)(g: (A, Eval[B]) ⇒ Eval[B]): Eval[B]

    Permalink

    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
  39. def reduceRightToOption[A, B](fa: F[A])(f: (A) ⇒ B)(g: (A, Eval[B]) ⇒ Eval[B]): Eval[Option[B]]

    Permalink

    Overriden from Foldable[_] for efficiency.

    Overriden from Foldable[_] for efficiency.

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

    Permalink

    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
  41. def sequenceU_[GA](fa: F[GA])(implicit U: Unapply[Applicative, GA]): M[Unit]

    Permalink

    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 cats.data.Xor

    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 cats.data.Xor

    scala> import cats.data.Xor
    scala> import cats.std.list._
    scala> val F = Foldable[List]
    scala> F.sequenceU_(List(Xor.right[String, Int](333), Xor.Right(444)))
    res0: Xor[String, Unit] = Right(())
    scala> F.sequenceU_(List(Xor.right[String, Int](333), Xor.Left("boo")))
    res1: Xor[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
  42. def sequence_[G[_], A](fga: F[G[A]])(implicit arg0: Applicative[G]): G[Unit]

    Permalink

    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.std.list._
    scala> import cats.std.option._
    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
  43. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  44. def takeWhile_[A](fa: F[A])(p: (A) ⇒ Boolean): List[A]

    Permalink

    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
  45. def toList[A](fa: F[A]): List[A]

    Permalink

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

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

    Definition Classes
    Foldable
  46. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  47. def traverse1_[G[_], A, B](fa: F[A])(f: (A) ⇒ G[B])(implicit G: Apply[G]): G[Unit]

    Permalink

    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
  48. def traverseU_[A, GB](fa: F[A])(f: (A) ⇒ GB)(implicit U: Unapply[Applicative, GB]): M[Unit]

    Permalink

    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 cats.data.Xor

    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 cats.data.Xor

    scala> import cats.data.Xor
    scala> import cats.std.list._
    scala> def parseInt(s: String): Xor[String, Int] =
         |   try { Xor.Right(s.toInt) }
         |   catch { case _: NumberFormatException => Xor.Left("boo") }
    scala> val F = Foldable[List]
    scala> F.traverseU_(List("333", "444"))(parseInt)
    res0: Xor[String, Unit] = Right(())
    scala> F.traverseU_(List("333", "zzz"))(parseInt)
    res1: Xor[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
  49. def traverse_[G[_], A, B](fa: F[A])(f: (A) ⇒ G[B])(implicit G: Applicative[G]): G[Unit]

    Permalink

    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.data.Xor
    scala> import cats.std.list._
    scala> import cats.std.option._
    scala> def parseInt(s: String): Option[Int] = Xor.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
  50. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  51. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  52. final def wait(arg0: Long): Unit

    Permalink
    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