CommutativeGroup

cats.kernel.CommutativeGroup
See theCommutativeGroup companion object
trait CommutativeGroup[A] extends Group[A], CommutativeMonoid[A]

An commutative group (also known as an abelian group) is a group whose combine operation is commutative.

Attributes

Companion
object
Source
CommutativeGroup.scala
Graph
Supertypes
trait Group[A]
trait Monoid[A]
trait Semigroup[A]
trait Serializable
class Any
Show all
Known subtypes
class BigIntGroup
class ByteGroup
class DoubleGroup
class FloatGroup
class IntGroup
class LongGroup
class ShortGroup
class UnitAlgebra
object Alg.type
Show all

Members list

Value members

Inherited methods

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)

Attributes

Inherited from:
Semigroup
Source
Semigroup.scala
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)

Attributes

Inherited from:
Semigroup
Source
Semigroup.scala
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)

Attributes

Inherited from:
Semigroup
Source
Semigroup.scala
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)

Attributes

Inherited from:
Semigroup
Source
Semigroup.scala
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 = ""

Attributes

Inherited from:
Monoid
Source
Monoid.scala
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 = ""

Attributes

Inherited from:
Monoid
Source
Monoid.scala
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 = ""

Attributes

Inherited from:
Monoid
Source
Monoid.scala
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 = ""

Attributes

Inherited from:
Monoid
Source
Monoid.scala
override def combineAllOption(as: IterableOnce[A]): Option[A]

Given a sequence of as, combine them and return the total.

Given a sequence of as, combine them and return the total.

If the sequence is empty, returns None. Otherwise, returns Some(total).

Example:

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

scala> Semigroup[String].combineAllOption(List("One ", "Two ", "Three"))
res0: Option[String] = Some(One Two Three)

scala> Semigroup[String].combineAllOption(List.empty)
res1: Option[String] = None

Attributes

Definition Classes
Inherited from:
Monoid
Source
Monoid.scala
override def combineN(a: A, n: Int): A

Return 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.

Attributes

Definition Classes
Inherited from:
Group
Source
Group.scala
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

Attributes

Inherited from:
Monoid
Source
Monoid.scala
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

Attributes

Inherited from:
Monoid
Source
Monoid.scala
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

Attributes

Inherited from:
Monoid
Source
Monoid.scala
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

Attributes

Inherited from:
Monoid
Source
Monoid.scala
override def intercalate(middle: A): CommutativeSemigroup[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.

Attributes

Definition Classes
Inherited from:
CommutativeSemigroup
Source
CommutativeSemigroup.scala
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

Attributes

Inherited from:
Group
Source
Group.scala
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

Attributes

Inherited from:
Group
Source
Group.scala
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

Attributes

Inherited from:
Group
Source
Group.scala
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

Attributes

Inherited from:
Group
Source
Group.scala
def isEmpty(a: A)(implicit 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

Attributes

Inherited from:
Monoid
Source
Monoid.scala
def isEmpty(a: A)(implicit 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

Attributes

Inherited from:
Monoid
Source
Monoid.scala
def isEmpty(a: A)(implicit 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

Attributes

Inherited from:
Monoid
Source
Monoid.scala
def isEmpty(a: A)(implicit 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

Attributes

Inherited from:
Monoid
Source
Monoid.scala
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

Attributes

Inherited from:
Group
Source
Group.scala
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

Attributes

Inherited from:
Group
Source
Group.scala
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

Attributes

Inherited from:
Group
Source
Group.scala
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

Attributes

Inherited from:
Group
Source
Group.scala
override def reverse: CommutativeMonoid[A]

return a semigroup that reverses the order so combine(a, b) == reverse.combine(b, a)

return a semigroup that reverses the order so combine(a, b) == reverse.combine(b, a)

Attributes

Definition Classes
Inherited from:
CommutativeMonoid
Source
CommutativeMonoid.scala