mirror of
https://github.com/IBM/fp-go.git
synced 2025-06-21 00:19:34 +02:00
20 lines
523 B
Go
20 lines
523 B
Go
package monoid
|
|
|
|
import (
|
|
S "github.com/ibm/fp-go/semigroup"
|
|
)
|
|
|
|
func GenericConcatAll[GA ~[]A, A any](m Monoid[A]) func(GA) A {
|
|
return S.GenericConcatAll[GA](S.MakeSemigroup(m.Concat))(m.Empty())
|
|
}
|
|
|
|
// ConcatAll concatenates all values using the monoid and the default empty value
|
|
func ConcatAll[A any](m Monoid[A]) func([]A) A {
|
|
return GenericConcatAll[[]A](m)
|
|
}
|
|
|
|
// Fold concatenates all values using the monoid and the default empty value
|
|
func Fold[A any](m Monoid[A]) func([]A) A {
|
|
return GenericConcatAll[[]A](m)
|
|
}
|