Concepts inOptimizing memory usage in higher-order programming languages: theoretical and experimental studies
Higher-order programming is a style of computer programming that uses functions as values. It is usually instantiated with, or borrowed from, models of computation such as lambda calculus which make heavy use of higher-order functions. For example, in higher-order programming, one can pass functions as arguments to other functions and functions can be the return value of other functions.
more from Wikipedia