Memoization
- An optimization technique that uses
cache - Ideally memoization uses
closures: a record/cache storing in the function definition (and that returns another function) - This way, it's possible to define the cache in the context of the outer function and
avoid a global cache - With that,
the cache is embedded in the memoized function definition - Memoization increases the
space complexityby the size of the cache store, usually $O(n)$