mirror of
https://github.com/IBM/fp-go.git
synced 2025-06-23 00:27:49 +02:00
initial checkin
Signed-off-by: Dr. Carsten Leue <carsten.leue@de.ibm.com>
This commit is contained in:
19
monoid/array.go
Normal file
19
monoid/array.go
Normal file
@ -0,0 +1,19 @@
|
||||
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)
|
||||
}
|
Reference in New Issue
Block a user