Caching the results of function calls to avoid redundant computation. In Python, commonly implemented with `@functools.lru_cache`. (Ch. 28)