memoize1<A, V> function

V Function(A) memoize1<A, V>(
  1. V fn(
    1. A
    )
)

Memoize sync function (by argument equality). Single-value cache. Roadmap #196, #197.

Implementation

V Function(A) memoize1<A, V>(V Function(A) fn) {
  final Map<A, V> cache = <A, V>{};
  return (A a) => cache.putIfAbsent(a, () => fn(a));
}