mirror of
https://github.com/IBM/fp-go.git
synced 2025-08-10 22:31:32 +02:00
fix: add Flap to more monads
Signed-off-by: Dr. Carsten Leue <carsten.leue@de.ibm.com>
This commit is contained in:
@@ -18,6 +18,7 @@ package generic
|
||||
import (
|
||||
F "github.com/IBM/fp-go/function"
|
||||
I "github.com/IBM/fp-go/identity/generic"
|
||||
FC "github.com/IBM/fp-go/internal/functor"
|
||||
T "github.com/IBM/fp-go/tuple"
|
||||
)
|
||||
|
||||
@@ -120,3 +121,11 @@ func Local[GA1 ~func(R1) A, GA2 ~func(R2) A, R2, R1, A any](f func(R2) R1) func(
|
||||
func Read[GA ~func(E) A, E, A any](e E) func(GA) A {
|
||||
return I.Ap[GA](e)
|
||||
}
|
||||
|
||||
func MonadFlap[GAB ~func(R) func(A) B, GB ~func(R) B, R, A, B any](fab GAB, a A) GB {
|
||||
return FC.MonadFlap(MonadMap[GAB, GB], fab, a)
|
||||
}
|
||||
|
||||
func Flap[GAB ~func(R) func(A) B, GB ~func(R) B, R, A, B any](a A) func(GAB) GB {
|
||||
return FC.Flap(MonadMap[GAB, GB], a)
|
||||
}
|
||||
|
@@ -105,3 +105,11 @@ func Local[R2, R1, A any](f func(R2) R1) func(Reader[R1, A]) Reader[R2, A] {
|
||||
func Read[E, A any](e E) func(Reader[E, A]) A {
|
||||
return G.Read[Reader[E, A]](e)
|
||||
}
|
||||
|
||||
func MonadFlap[R, A, B any](fab Reader[R, func(A) B], a A) Reader[R, B] {
|
||||
return G.MonadFlap[Reader[R, func(A) B], Reader[R, B]](fab, a)
|
||||
}
|
||||
|
||||
func Flap[R, A, B any](a A) func(Reader[R, func(A) B]) Reader[R, B] {
|
||||
return G.Flap[Reader[R, func(A) B], Reader[R, B]](a)
|
||||
}
|
||||
|
Reference in New Issue
Block a user