Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Additive ¶
type Additive interface { constraints.Integer | constraints.Float | constraints.Complex | ~string }
Additive is a type that can use `+` operator.
type DefaultMonoid ¶
DefaultMonoid is a default implementation of Monoid.
func (*DefaultMonoid[T]) Empty ¶
func (m *DefaultMonoid[T]) Empty() T
type DefaultSemigroup ¶
type DefaultSemigroup[T any] struct { CombineImpl func(T, T) T }
DefaultSemigroup is a default implementation of Semigroup.
func (*DefaultSemigroup[T]) Combine ¶
func (s *DefaultSemigroup[T]) Combine(x, y T) T
type Monoid ¶
Monoid is a Semigroup with identity.
func DeriveAdditiveMonoid ¶
DeriveAdditiveMonoid derives Monoid using `+` and zero value.
func DeriveMultiplicativeMonoid ¶
func DeriveMultiplicativeMonoid[T Multiplicative]() Monoid[T]
DeriveMultiplicativeMonoid derives Monoid using `*` and `1`.
type Multiplicative ¶
type Multiplicative interface { constraints.Integer | constraints.Float | constraints.Complex }
Multiplicative is a type that can use `*` operator.
type Semigroup ¶
type Semigroup[T any] interface { Combine(T, T) T }
Semigroup is a set of type `T` and its associative binary operation `Combine(T, T) T`
func DeriveAdditiveSemigroup ¶
DeriveAdditiveSemigroup derives Semigroup using `+` operator.
func DeriveMultiplicativeSemigroup ¶
func DeriveMultiplicativeSemigroup[T Multiplicative]() Semigroup[T]
DeriveMultiplicativeSemigroup derives Semigroup using `*` operator.
Click to show internal directories.
Click to hide internal directories.