En programmation fonctionnelle, une fonction est l'unité de manipulation principale.
En POO, un objet est l'unité de manipulation principale.
La programmation fonctionnelle prend principalement en charge l'abstraction sur les données et l'abstraction sur le comportement.
Des langages fonctionnels plus récents tels ML (1973), Haskell (1987), OCaml, Erlang, Clean et Oz, CDuce, Scala (2003), F# ou PureScript (2013), Agda (en) sont fortement typés.
Il est possible d'utiliser la programmation fonctionnelle de manière récursive.
Cela va permettre d'avoir un code plus lisible et plus court.
De plus, le code s'auto documenter de lui-même.