Memoization is a strategy to implicitly save the value of a computation in order to produce that same value later without evaluating the computation more than once.
SchemeLanguage, OcamlLanguage, and SmlNjLanguage provide ExplicitLazyProgramming and use memoization in the implementation. Other functional languages like HaskellLanguage are implicitly lazy and provide explicit strict constructs to eagerly evaluate an expression.
See
A slightly more formal definition is that a memoization function takes a function f and returns a function fm that is the same as f except it uses a cache.
-- AdewaleOshineye, PatrickLogan, et al.
See also: MemoizationInPython, FactorCache, CacheCalculations
Category FunctionalProgramming