1
0
mirror of https://github.com/IBM/fp-go.git synced 2025-06-21 00:19:34 +02:00
Files
fp-go/monoid/function.go
Dr. Carsten Leue c07df5c771 initial checkin
Signed-off-by: Dr. Carsten Leue <carsten.leue@de.ibm.com>
2023-07-07 22:31:06 +02:00

15 lines
342 B
Go

package monoid
import (
F "github.com/ibm/fp-go/function"
S "github.com/ibm/fp-go/semigroup"
)
// FunctionMonoid forms a monoid as long as you can provide a monoid for the codomain.
func FunctionMonoid[A, B any](M Monoid[B]) Monoid[func(A) B] {
return MakeMonoid(
S.FunctionSemigroup[A, B](M).Concat,
F.Constant1[A](M.Empty()),
)
}