mirror of
https://github.com/IBM/fp-go.git
synced 2025-06-25 00:36:54 +02:00
15 lines
498 B
Go
15 lines
498 B
Go
![]() |
package generic
|
||
|
|
||
|
import (
|
||
|
M "github.com/ibm/fp-go/monoid"
|
||
|
S "github.com/ibm/fp-go/semigroup"
|
||
|
)
|
||
|
|
||
|
func ApplySemigroup[GA ~func() A, A any](s S.Semigroup[A]) S.Semigroup[GA] {
|
||
|
return S.ApplySemigroup(MonadMap[GA, func() func(A) A, A, func(A) A], MonadAp[GA, GA, func() func(A) A, A, A], s)
|
||
|
}
|
||
|
|
||
|
func ApplicativeMonoid[GA ~func() A, A any](m M.Monoid[A]) M.Monoid[GA] {
|
||
|
return M.ApplicativeMonoid(Of[GA, A], MonadMap[GA, func() func(A) A, A, func(A) A], MonadAp[GA, GA, func() func(A) A, A, A], m)
|
||
|
}
|