Functional programming is a style that uses the definition and application of functions as essential concepts. In this approach, variables play the same role as in mathematics: they are the symbolic representation of values and, in particular, serve as the parameters of functions. The fundamental syntactic idea is that of an expression, and we define functions, starting from expressions, by using variables as parameters.
For example, in the language CAML, the expression
designates the function that associates x with 2*x+1.
If we wanted to define the same function in PASCAL or in C, we would write: