1
0
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:
Dr. Carsten Leue
2023-07-07 22:31:06 +02:00
parent 71c47ca560
commit c07df5c771
128 changed files with 5827 additions and 2 deletions

14
monoid/function.go Normal file
View File

@ -0,0 +1,14 @@
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()),
)
}