Memoization

Memoization is a technique that is associated with Dynamic Programming. The concept is to cache the result of a function given its parameter so that the calculation will not be repeated - it is simply retrieved, or memo-ed.

An example would be the Fibonacci Sequence: fib( n ) if ( n = 0 ) return 0 if ( n = 1 ) return 1 return fib( n - 1 ) + fib( n - 2 )

Though this is exponential, $$fib( n )$$ never changes, allowing us to effectively save it down for future use.