A class of programming languages whose programs compute functions. In practice, the class of functional languages are a subclass of the declarative languages, and are based on lambda calculus or recursion equations. Typically a program in a functional language consists of an unordered set of equations that characterize functions and their values. Functions are specified by use of recursion, other functions, and values. Values are characterized as functions applied to other values. Ultimately the set of equations that is the program must characterize all functions and values in terms of the primitive functions and values provided by the language. The values characterized by the equations include the values computed by executing the program.