Imperative vs Functional
Difference between Imperative languages and Functional languages:
-
Imperative languages are based on assignment sequences whereas functional languages are based on nested function calls.
-
In imperative languages, the same name may be associated with several values, whereas in functional languages a name is only associated with one value.
-
Imperative languages have fixed evaluation orders whereas functional languages need not.(1)
-
In imperative languages, new values may be associated with the same name through command repetition whereas in functional languages new names are associated with new values through recursive function call nesting.
-
Functional languages provide explicit data structure representations.
-
In functional languages, functions are values.(2)
-
Functional languages originate in mathematical logic and the theory of computing, in recursive function theory and lambda calculus.
(1). Remember the difference between statements and expressions. Statements do not yield a result value whereas expressions do.
(2). Most of modern languages nowaday support syntax in which accept a function as parameter for a function, but in functional languages, functions can be return as the return of functions.