The term memoization was coined by Donald Michie (1968) to refer to the process by which a function is made to automatically remember the results of previous computations. The idea has become more popular in recent years with the rise of functional languages; Field and Harrison (1988) devote a whole chapter to it. The basic idea is just to keep a table of previously computed input/result pairs. [⇒ Table Lookup]
~
NORVIG, Peter, 1991. Techniques for automatic memoization with applications to context-free parsing. Computational Linguistics. 1991. Vol. 17, no. 1, p. 91–98.
Memoization is a technique for storing values of a function instead of recomputing them each time the function is called. wiki.haskell
For further and detailed explanations, see
* Ralf Hinze: Memo functions, polytypically! page * Ralf Hinze: Generalizing generalized tries page * Conal Elliott: Elegant memoization with functional memo tries post and other posts on memoization. blog * Conal Elliott Denotational design with type class morphisms, section 9 (Memo tries). page
Memoization via Representables post
What is the most basic Container type a language can have? Some people may answer vectors, others would go with hash tables, but in this post Iago Leal de Freitas is arguing in favor of functions. post
> Table Lookup (of gathered experience) – 53:32; Graph algorithms (table to graph transformation) page