DEV Community

José Thomaz
José Thomaz

Posted on

Functional programming: a bit of history

History of functional programming

Functional programming is a programming paradigm, such as object-oriented, imperative and many other programming “styles”. So, before we start to crack functional programming, let’s learn a little bit about its history.


Computer Science background

To made functional programming possible, many mathematical and computer science theories, concepts and researches were published. Functional programming is very attached to math and functions, its roots are in mathematical logic.

Informal logic systems have been in use or over 2000 years, but the first formalization was made only in the middle of the XIX century. Hamilton, De Morgan and Boole published their works, that were the basis to the formal logic:

  • Propositional Calculus;
  • Predicate Calculus.

Also, in the XIX century, the number theory was introduced.

In 1936, three different approaches for computability were proposed: Turing’s Turing machines, Kleene’s recursive function theory and Church’s lambda calculus. Turing’s proposal is the foundation of the computer science and programming languages as we know today, and the recursive function theory and lambda calculus are the backbones of functional programming.


The first functional programming language

The first programming languages were created in the late 1940s, Assembly was the first, and FORTRAN was the first high level programming language to become popular; created in 1954. In the next years new programming languages were created, but now high level, and mostly procedural.

As the computers were becoming more popular, new languages appeared, so in 1958, McCarthy created the LISP programming language, which is considered the first functional language in history.

LISP is a very simple language based on recursive functions manipulating lists of words and numbers. LISP is a non-typed language. Besides that, LISP is not considered “purely functional”, because it has some imperative elements.


Functional languages nowadays

The functional paradigm has become popular recently, programmers and companies started to use functional languages in their projects more frequently. Some examples of popular functional languages are:

  • Elixir
  • Haskell
  • OCaml
  • Clojure

Today, we also have the “multi-paradigm languages”, that are languages that you can code using many paradigms, like imperative, object-oriented and functional. Examples of “multi-paradigm languages”:

  • JavaScript
  • TypeScript
  • Python

Oldest comments (1)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.