le différence clé entre la programmation fonctionnelle et la programmation impérative est que la la programmation fonctionnelle considère les calculs comme des fonctions mathématiques et évite de changer d'état et de données mutables tandis que la programmation impérative utilise les instructions qui modifient l'état du programme.
Un paradigme de programmation fournit un style de construction de la structure et des éléments d’un programme informatique. Les paradigmes de programmation permettent de classer les langages de programmation en fonction de leurs fonctionnalités. Un langage de programmation pourrait influencer plus de paradigmes. Dans le paradigme orienté objet, le programme est structuré à l'aide d'objets et les objets transmettent des messages à l'aide de méthodes. La programmation logique peut exprimer le calcul exclusivement en termes de logique mathématique. Deux autres paradigmes de programmation sont la programmation fonctionnelle et la programmation impérative. La programmation fonctionnelle permet d’exprimer des calculs sous forme d’évaluation de fonctions mathématiques. La programmation impérative fournit des instructions qui modifient explicitement l'état de la mémoire. Cet article traite de la différence entre la programmation fonctionnelle et la programmation impérative.
1. Vue d'ensemble et différence clé
2. Qu'est-ce que la programmation fonctionnelle
3. Quelle est la programmation impérative
4. Similarités entre la programmation fonctionnelle et la programmation impérative
5. Comparaison côte à côte - Programmation fonctionnelle vs Programmation impérative sous forme tabulaire
6. Résumé
La programmation fonctionnelle est basée sur les mathématiques. Le principe de base de la programmation fonctionnelle est que tout le calcul est considéré comme une combinaison de fonctions mathématiques distinctes. Une fonction mathématique mappe les entrées aux sorties. Supposons qu'il existe une fonction appelée f (x) = x * x. La valeur x 1 est associée à la sortie 1. La valeur x 2 est associée à la sortie 4. La valeur x 3 est associée à la sortie 9, etc..
Figure 01: Exemple de langage de programmation fonctionnel - Haskell
En programmation fonctionnelle, les modèles sont pris en compte. Les langages de programmation fonctionnels Haskell, utilise la méthode ci-dessous pour trouver la somme des nombres.
La fonction sum a des valeurs entières et le résultat sera également un nombre entier. Cela peut être écrit en tant que sum: [int] -> int. La sommation peut être faite en suivant les modèles ci-dessous.
sum [n] = n, la somme d'un nombre est le nombre lui-même.
S'il existe une liste de nombres, elle peut être écrite comme suit. Le n représente le premier nombre et ns les autres nombres
somme (n, ns) = n + somme ns.
Les modèles ci-dessus peuvent être appliqués pour trouver la somme de trois nombres qui sont 3,4,5.
3 + somme [4,5]
3 + (4 + somme [5])
3+ 4 + 5 = 12
Une fonction ou une expression est dite avoir des effets secondaires si elle modifie un état en dehors de sa portée ou a une interaction observable avec ses fonctions d'appel en plus de la valeur renvoyée. La programmation fonctionnelle minimise ces effets secondaires. Les changements d'état ne dépendent pas des entrées de fonction. C'est utile pour comprendre le comportement du programme. Un inconvénient de la programmation fonctionnelle est que l'apprentissage de la programmation fonctionnelle est plus difficile que celui de la programmation impérative..
La programmation impérative est un paradigme de programmation qui utilise les instructions qui modifient l'état d'un programme. Il se concentre sur la description du fonctionnement d’un programme. Les langages de programmation tels que Java, C et C # sont des langages de programmation impératifs. Il fournit une procédure étape par étape sur la procédure à suivre. Les langages de programmation impératifs contiennent des structures telles que if, else, while, pour les boucles, classes, objets et fonctions.
Figure 02: Exemple de langage de programmation Imperative - Java
La somme de dix nombres peut être trouvée en Java comme suit. A chaque itération, la valeur i est ajoutée à la somme et affectée à la variable sum. A chaque itération, la valeur de la somme continue d’ajouter à la somme calculée précédemment.
int sum = 0;
pour (int i = 0; i< =10; i++)
somme = somme + i;
La programmation impérative est facile à apprendre, à comprendre et à déboguer. Il est facile de trouver l'état du programme grâce à l'utilisation de variables d'état. Certains inconvénients sont que cela peut rendre le code long et peut également minimiser l'évolutivité.
Programmation fonctionnelle vs impérative | |
La programmation fonctionnelle est un paradigme de programmation qui considère le calcul comme une évaluation de fonctions mathématiques et évite de changer d'état et de données mutables.. | La programmation impérative est un paradigme de programmation qui utilise des instructions qui modifient l'état d'un programme. |
Des structures | |
La programmation fonctionnelle contient des appels de fonction et des fonctions d'ordre supérieur. | La programmation impérative contient if, else, while, pour les boucles, fonctions, classes et objets. |
Langages de programmation | |
Scala, Haskell et Lisp sont des langages de programmation fonctionnels. | C, C ++, Java sont des langages de programmation impératifs. |
Concentrer | |
La programmation fonctionnelle se concentre sur le résultat final. | La programmation impérative se concentre sur la description du fonctionnement d'un programme. |
Simplicité | |
La programmation fonctionnelle est difficile. | La programmation impérative est plus facile. |
Un paradigme de programmation fournit un style de construction de la structure et des éléments d’un programme informatique. La programmation fonctionnelle et la programmation impérative en sont deux. La différence entre la programmation fonctionnelle et la programmation impérative réside dans le fait que la programmation fonctionnelle considère les calculs comme des fonctions mathématiques et évite de changer d'état et de données mutables, tandis que la programmation impérative utilise les instructions qui modifient l'état du programme..
1. «Imperative Programming». Wikipedia, Wikimedia Foundation, 28 mars 2018.. Disponible ici
2. «Programmation fonctionnelle». Wikipedia, Wikimedia Foundation, 28 mars 2018. Disponible ici
3. Ordinateurphile. YouTube, YouTube, 30 août 2013. Disponible ici
1.'Haskell Logo'By Haskell1965 - Travail personnel, (CC BY-SA 3.0) via Wikimedia Commons
2.'14485179234'by Captures d'écran Linux (CC BY 2.0) via Flickr