An optimization technique that stores the results of expensive function calls and returns the cached result when the same inputs occur again. This trades memory for speed by avoiding redundant computations.
Coined by Donald Michie in 1968, derived from the Latin 'memorandum' meaning to be remembered. The term was created specifically for computing to distinguish it from general memorization, emphasizing the automatic caching aspect.
Memoization is like having a really good memory for math problems - once you solve '127 × 83', you write down the answer so you never have to calculate it again! This is especially powerful for recursive algorithms like calculating Fibonacci numbers, turning exponential time into linear time.
Complete word intelligence in one call. Free tier — 50 lookups/day.