What is "functional-programming"

Functional programming is a programming paradigm that deals mainly with mathematical functions. In functional languages, functions are first-class values.

Functions have return arguments and results, but usually do not undergo state mutations. This in contrast to imperative programming, which revolves primarily around state-changing statements. The advantage of avoiding the changeable state is that you can compose functions safely, and you can use the algebraic laws and "substitution of equals for equals" to simplify programs or improve their performance.

One consequence of this is that many common standards in programming can be abstracted as higher-order functions, which apply a function that implements real functionality, and applies it to data in a known way. This can make code more concise and simple to reason and understand.

Functional programming has evolved into a mathematical system called lambda Calculus, which was developed in the 1930s. Lisp was the first programming language to be based on lambda calculus.

Programming languages

These languages are listed in order of popularity in relation to the tag funcional programação From the original Stackoverflow.

Languages that are primarily functional, but with some support for mutable state or other programming paradigms:

Languages that have some functional aspects (such as support for first-class functions), but are not considered functional languages per se: