A functional language is a programming language built over and around logical functions or procedures within its programming structure. It is based on and is similar to mathematical functions in its program flow.
Functional languages derive their basic structure from the mathematical framework of Lambda calculus and combinatory logic. Erlang, LISP, Haskell and Scala are the most well-known functional languages.
Comprised primarily of functions, functional language emphasizes the semantics, rather than compilation, of a program. Functional language does not have the side effects of traditional imperative styles of programming in that functional language does not change the state of a program and will return the same results until functions are passed with the same arguments.
However, the lack of side effects is also a drawback to functional language, as not all programs can be developed without these effects in place, especially those requiring changing states and the creation of input/output (I/O) procedures.
Read More »