Monoid whose operation preserves the Order:
∀ a,b,c: (a ≤ b) → (a⊕c ≤ b⊕c) (a ≤ b) → (c⊕a ≤ c⊕b)
- See also:
- Companion:
- object
Type members
Inherited classlikes
Monoid instances must satisfy scalaz.Semigroup.SemigroupLaw and 2 additional laws:
Monoid instances must satisfy scalaz.Semigroup.SemigroupLaw and 2 additional laws:
- '''left identity''':
forall a. append(zero, a) == a
- '''right identity''' :
forall a. append(a, zero) == a
- Inherited from:
- Monoid
A semigroup in type F must satisfy two laws:
A semigroup in type F must satisfy two laws:
- '''closure''':
∀ a, b in F, append(a, b)
is also inF
. This is enforced by the type system. - '''associativity''':
∀ a, b, c
inF
, the equationappend(append(a, b), c) = append(a, append(b , c))
holds.
- Inherited from:
- Semigroup
Value members
Inherited methods
The binary operation to combine f1
and f2
.
The binary operation to combine f1
and f2
.
Implementations should not evaluate the by-name parameter f2
if result
can be determined by f1
.
- Inherited from:
- Semigroup
A monoidal applicative functor, that implements point
and ap
with the operations zero
and append
respectively. Note that
the type parameter α
in Applicative[λ[α => F]]
is
discarded; it is a phantom type. As such, the functor cannot
support scalaz.Bind.
A monoidal applicative functor, that implements point
and ap
with the operations zero
and append
respectively. Note that
the type parameter α
in Applicative[λ[α => F]]
is
discarded; it is a phantom type. As such, the functor cannot
support scalaz.Bind.
- Inherited from:
- Monoid
An scalaz.Apply, that implements ap
with append
. Note
that the type parameter α
in Apply[λ[α => F]]
is
discarded; it is a phantom type. As such, the functor cannot
support scalaz.Bind.
An scalaz.Apply, that implements ap
with append
. Note
that the type parameter α
in Apply[λ[α => F]]
is
discarded; it is a phantom type. As such, the functor cannot
support scalaz.Bind.
- Inherited from:
- Semigroup
Every Monoid
gives rise to a scalaz.Category, for which
the type parameters are phantoms.
Every Monoid
gives rise to a scalaz.Category, for which
the type parameters are phantoms.
- Note:
category.monoid
=this
- Inherited from:
- Monoid
Every Semigroup
gives rise to a scalaz.Compose, for which
the type parameters are phantoms.
Every Semigroup
gives rise to a scalaz.Compose, for which
the type parameters are phantoms.
- Note:
compose.semigroup
=this
- Inherited from:
- Semigroup
For n = 0
, zero
For n = 1
, append(zero, value)
For n = 2
, append(append(zero, value), value)
For n = 0
, zero
For n = 1
, append(zero, value)
For n = 2
, append(append(zero, value), value)
- Inherited from:
- Monoid
For n = 0
, value
For n = 1
, append(value, value)
For n = 2
, append(append(value, value), value)
For n = 0
, value
For n = 1
, append(value, value)
For n = 2
, append(append(value, value), value)
The default definition uses peasant multiplication, exploiting associativity to only
require O(log n)
uses of append
- Inherited from:
- Semigroup
Unfold seed
to the left and sum using append.
Semigroups with right absorbing elements may override this method
to not unfold more than is necessary to determine the result.
Unfold seed
to the left and sum using append.
Semigroups with right absorbing elements may override this method
to not unfold more than is necessary to determine the result.
- Inherited from:
- Semigroup
Unfold seed
to the right and sum using append.
Semigroups with left absorbing elements may override this method
to not unfold more than is necessary to determine the result.
Unfold seed
to the right and sum using append.
Semigroups with left absorbing elements may override this method
to not unfold more than is necessary to determine the result.
- Inherited from:
- Semigroup