memoize method
Returns a memoized version of the function.
Caches the result of the function based on its arguments and actually runs the computation only once for a given combination of arguments.
Because of that, the source function must be pure.
Implementation
F4<A, B, C, D, T> memoize() {
final cached = createCached<T>();
return (a, b, c, d) => cached([a, b, c, d]);
}