trait Monoid[A] extends Semigroup[A]

A monoid is a semigroup with an identity. A monoid is a specialization of a semigroup, so its operation must be associative. Additionally, combine(x, empty) == combine(empty, x) == x. For example, if we have Monoid[String], with combine as string concatenation, then empty = "".

Source
Monoid.scala
Linear Supertypes
Semigroup[A], Serializable, Serializable, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Monoid
  2. Semigroup
  3. Serializable
  4. Serializable
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract 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)
    Definition Classes
    Semigroup
  2. abstract 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
  3. abstract def getClass(): Class[_]
    Definition Classes
    Any

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    Any
  2. final def ##(): Int
    Definition Classes
    Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def combineAll(as: TraversableOnce[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 = ""
  6. def combineAllOption(as: TraversableOnce[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
    Definition Classes
    MonoidSemigroup
  7. def combineN(a: A, n: Int): A

    Return a appended to itself n times.

    Return a appended to itself n times.

    Example:

    scala> import cats.kernel.instances.string._
    
    scala> Monoid[String].combineN("ha", 3)
    res0: String = hahaha
    
    scala> Monoid[String].combineN("ha", 0)
    res1: String = ""
    Definition Classes
    MonoidSemigroup
  8. def equals(arg0: Any): Boolean
    Definition Classes
    Any
  9. def hashCode(): Int
    Definition Classes
    Any
  10. 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
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. def repeatedCombineN(a: A, n: Int): A

    Return a combined with itself more than once.

    Return a combined with itself more than once.

    Attributes
    protected[this]
    Definition Classes
    Semigroup
  13. def toString(): String
    Definition Classes
    Any

Inherited from Semigroup[A]

Inherited from Serializable

Inherited from Serializable

Inherited from Any

Ungrouped