Une fonction clé dans un langage fonctionnel, c'est le concept de première classe de fonctions. L'idée est que vous pouvez passer des fonctions en tant que paramètres à d'autres fonctions et, de retour en tant que valeurs.
Programmation fonctionnelle consiste à écrire du code qui ne change pas d'état. La principale raison pour le faire est de sorte que les appels à une fonction qui permet d'aboutir au même résultat. Vous pouvez écrire du code fonctionnel dans une langue qui prend en charge de première classe de fonctions, mais il y a certaines langues, comme Haskell, qui ne vous permettent pas de modifier l'état. En fait, vous n'êtes pas censé faire des effets secondaires (comme l'impression de texte) à tout ce qui sonne comme il pourrait être tout à fait inutile.
Haskell au lieu emploie une approche différente de la IO: monades. Ce sont des objets qui contiennent de l'souhaité IO opération devant être exécutée par votre interprète du générique. À tout autre niveau, ils sont tout simplement des objets dans le système.
Quels sont les avantages de la programmation fonctionnelle fournir? Programmation fonctionnelle permet de codage avec moins de potentiel de bugs parce que chaque composant est complètement isolé. Aussi, l'utilisation de la récursivité et de première classe de fonctions, permet pour de simples preuves de l'exactitude généralement dans le miroir de la structure du code.