Documentation
¶
Index ¶
- func CacheCallback[EM ~func(F) F, LLT ~func() LT, LT ~func() T, F ~func(A) T, KF func(A) K, ...](kf KF, getOrCreate C) EM
- func ContramapMemoize[F ~func(A) T, KF func(A) K, A any, K comparable, T any](kf KF) func(F) F
- func Memoize[F ~func(K) T, K comparable, T any](f F) F
- func SingleElementCache[LLT ~func() LT, K comparable, LT ~func() T, T any]() func(K, LLT) LT
- func Switch[HF ~func(T) R, N ~map[K]HF, KF ~func(T) K, K comparable, T, R any](kf KF, n N, d HF) HF
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CacheCallback ¶
func CacheCallback[ EM ~func(F) F, LLT ~func() LT, LT ~func() T, F ~func(A) T, KF func(A) K, C ~func(K, LLT) LT, A any, K comparable, T any](kf KF, getOrCreate C) EM
CacheCallback converts a unary function into a unary function that caches the value depending on the parameter
func ContramapMemoize ¶
func ContramapMemoize[F ~func(A) T, KF func(A) K, A any, K comparable, T any](kf KF) func(F) F
ContramapMemoize converts a unary function into a memoized version that caches results by a derived key.
kf extracts a comparable cache key from the input. Two inputs a1, a2 with kf(a1) == kf(a2) share one cache entry: the result computed on the first call for that key is returned for all later calls that map to it, regardless of the actual input. The caller is responsible for ensuring that equal keys imply equal outputs — violating this produces silently incorrect results.
func Memoize ¶
func Memoize[F ~func(K) T, K comparable, T any](f F) F
Memoize converts a unary function into a unary function that caches the value depending on the parameter
func SingleElementCache ¶
func SingleElementCache[ LLT ~func() LT, K comparable, LT ~func() T, T any, ]() func(K, LLT) LT
SingleElementCache is a cache with a capacity of a single element
func Switch ¶
func Switch[HF ~func(T) R, N ~map[K]HF, KF ~func(T) K, K comparable, T, R any](kf KF, n N, d HF) HF
Switch applies a handler to different cases. The handers are stored in a map. A key function extracts the case from a value.
Types ¶
This section is empty.