ZeroGroup

trait ZeroGroup[@specialized(Int, Long, Float, Double) A] extends Group[A] with ZeroMonoid[A]

A group with an absorbing element.

A group with an absorbing element.

Companion
object
trait ZeroMonoid[A]
trait ZeroSemigroup[A]
trait Group[A]
trait Monoid[A]
trait Semigroup[A]
trait Serializable
class Any

Value members

Inherited methods

def absorbing: A

Return the absorbing element for this zero semigroup.

Return the absorbing element for this zero semigroup.

Inherited from
ZeroSemigroup
def combine(x: A, y: A): A

Associative operation which combines two values.

Associative operation which combines two values.

Example:

scala> import cats.kernel.instances.string._
scala> import cats.kernel.instances.int._
scala> import cats.kernel.instances.option._

scala> Semigroup[String].combine("Hello ", "World!")
res0: String = Hello World!

scala> Semigroup[Option[Int]].combine(None, Some(1))
res1: Option[Int] = Some(1)
Inherited from
Semigroup
def combineAll(as: IterableOnce[A]): A

Given a sequence of as, sum them using the monoid and return the total.

Given a sequence of as, sum them using the monoid and return the total.

Example:

scala> import cats.kernel.instances.string._

scala> Monoid[String].combineAll(List("One ", "Two ", "Three"))
res0: String = One Two Three

scala> Monoid[String].combineAll(List.empty)
res1: String = ""
Inherited from
Monoid
override def combineAllOption(as: IterableOnce[A]): Option[A]
Definition Classes
Monoid -> Semigroup
Inherited from
Monoid
override def combineN(a: A, n: Int): A

Return a appended to itself n times. If n is negative, then this returns inverse(a) appended to itself n times.

Return a appended to itself n times. If n is negative, then this returns inverse(a) appended to itself n times.

Definition Classes
Group -> Monoid -> Semigroup
Inherited from
Group
def empty: A

Return the identity element for this monoid.

Return the identity element for this monoid.

Example:

scala> import cats.kernel.instances.int._
scala> import cats.kernel.instances.string._

scala> Monoid[String].empty
res0: String = ""

scala> Monoid[Int].empty
res1: Int = 0
Inherited from
Monoid
def intercalate(middle: A): Semigroup[A]

Between each pair of elements insert middle This name matches the term used in Foldable and Reducible and a similar Haskell function.

Between each pair of elements insert middle This name matches the term used in Foldable and Reducible and a similar Haskell function.

Inherited from
Semigroup
def inverse(a: A): A

Find the inverse of a.

Find the inverse of a.

combine(a, inverse(a)) = combine(inverse(a), a) = empty.

Example:

scala> import cats.kernel.instances.int._

scala> Group[Int].inverse(5)
res0: Int = -5
Inherited from
Group
def isAbsorbing(a: A)(ev: Eq[A]): Boolean

Tests if a is the absorbing element.

Tests if a is the absorbing element.

Inherited from
ZeroSemigroup
def isEmpty(a: A)(ev: Eq[A]): Boolean

Tests if a is the identity.

Tests if a is the identity.

Example:

scala> import cats.kernel.instances.string._

scala> Monoid[String].isEmpty("")
res0: Boolean = true

scala> Monoid[String].isEmpty("something")
res1: Boolean = false
Inherited from
Monoid
def remove(a: A, b: A): A

Remove the element b from a.

Remove the element b from a.

Equivalent to combine(a, inverse(b))

Example:

scala> import cats.kernel.instances.int._

scala> Group[Int].remove(5, 2)
res0: Int = 3
Inherited from
Group
override def reverse: ZeroMonoid[A]
Definition Classes
ZeroMonoid -> ZeroSemigroup -> Monoid -> Semigroup
Inherited from
ZeroMonoid