mirror of
https://github.com/IBM/fp-go.git
synced 2025-06-19 00:17:48 +02:00
Dependency injection (#81)
* fix: checkin Signed-off-by: Carsten Leue <carsten.leue@de.ibm.com> * fix: add initial DI implementation Signed-off-by: Carsten Leue <carsten.leue@de.ibm.com> * fix: add multi provider Signed-off-by: Carsten Leue <carsten.leue@de.ibm.com> * fix: simplify DI implementation Signed-off-by: Carsten Leue <carsten.leue@de.ibm.com> * fix: simplify provider Signed-off-by: Carsten Leue <carsten.leue@de.ibm.com> * fix: add Switch to function package Signed-off-by: Carsten Leue <carsten.leue@de.ibm.com> * fix: add DI Signed-off-by: Dr. Carsten Leue <carsten.leue@de.ibm.com> --------- Signed-off-by: Carsten Leue <carsten.leue@de.ibm.com> Signed-off-by: Dr. Carsten Leue <carsten.leue@de.ibm.com>
This commit is contained in:
@ -52,6 +52,10 @@ func MonadMapRef[A, B any](as []A, f func(a *A) B) []B {
|
||||
return bs
|
||||
}
|
||||
|
||||
func MapWithIndex[A, B any](f func(int, A) B) func([]A) []B {
|
||||
return G.MapWithIndex[[]A, []B](f)
|
||||
}
|
||||
|
||||
func Map[A, B any](f func(a A) B) func([]A) []B {
|
||||
return F.Bind2nd(MonadMap[A, B], f)
|
||||
}
|
||||
@ -313,6 +317,11 @@ func FoldMap[A, B any](m M.Monoid[B]) func(func(A) B) func([]A) B {
|
||||
return G.FoldMap[[]A](m)
|
||||
}
|
||||
|
||||
// FoldMapWithIndex maps and folds an array. Map the Array passing each value to the iterating function. Then fold the results using the provided Monoid.
|
||||
func FoldMapWithIndex[A, B any](m M.Monoid[B]) func(func(int, A) B) func([]A) B {
|
||||
return G.FoldMapWithIndex[[]A](m)
|
||||
}
|
||||
|
||||
// Fold folds the array using the provided Monoid.
|
||||
func Fold[A any](m M.Monoid[A]) func([]A) A {
|
||||
return G.Fold[[]A](m)
|
||||
|
Reference in New Issue
Block a user