1
0
mirror of https://github.com/IBM/fp-go.git synced 2025-08-10 22:31:32 +02:00

fix: add missing Memoize to readers

Signed-off-by: Dr. Carsten Leue <carsten.leue@de.ibm.com>
This commit is contained in:
Dr. Carsten Leue
2023-09-20 15:56:02 +02:00
parent 44c8441b07
commit 943ae8e009
8 changed files with 75 additions and 2 deletions

View File

@@ -75,3 +75,10 @@ func ChainIOK[E, A, B any](f func(A) IO.IO[B]) func(ReaderIO[E, A]) ReaderIO[E,
func Defer[E, A any](gen func() ReaderIO[E, A]) ReaderIO[E, A] {
return G.Defer[ReaderIO[E, A]](gen)
}
// Memoize computes the value of the provided [ReaderIO] monad lazily but exactly once
// The context used to compute the value is the context of the first call, so do not use this
// method if the value has a functional dependency on the content of the context
func Memoize[E, A any](rdr ReaderIO[E, A]) ReaderIO[E, A] {
return G.Memoize[ReaderIO[E, A]](rdr)
}