A zero semigroup is a semigroup with an absorbing element. A zero semigroup is a specialization of a
semigroup, so its operation must be associative. Additionally,
combine(x, absorbing) == combine(absorbing, x) == absorbing
. For example, if we have ZeroSemigroup[Int]
,
with combine
as integer multiplication, then absorbing == 0
.
A zero semigroup is a semigroup with an absorbing element. A zero semigroup is a specialization of a
semigroup, so its operation must be associative. Additionally,
combine(x, absorbing) == combine(absorbing, x) == absorbing
. For example, if we have ZeroSemigroup[Int]
,
with combine
as integer multiplication, then absorbing == 0
.
- Companion
- object
Value members
Abstract methods
Inherited methods
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
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
- Inherited from
- Semigroup
Return a
combined with itself n
times.
Return a
combined with itself n
times.
Example:
scala> import cats.kernel.instances.int._
scala> import cats.kernel.instances.string._
scala> Semigroup[Int].combineN(1, 10)
res0: Int = 10
scala> Semigroup[String].combineN("ha", 3)
res1: String = hahaha
- Inherited from
- Semigroup