99 votes

Quels sont les avantages de la programmation fonctionnelle?

Selon vous, quels sont les avantages de la programmation fonctionnelle? Et comment s'appliquent-ils aux programmeurs aujourd'hui?

Quelles sont les plus grandes différences entre la programmation fonctionnelle et la POO?

76voto

C. Lawrence Wenham Points 11271

Le style de programmation fonctionnelle est de décrire ce que vous voulez, plutôt que de savoir comment l'obtenir. c'est à dire: au lieu de créer une boucle avec une variable d'itérateur et en marchant à travers un tableau de faire quelque chose pour chaque cellule, on dirais l'équivalent de "cette étiquette fait référence à une version de ce tableau où cette fonction a été fait sur tous les éléments."

Programmation fonctionnelle coups de plus en plus de base de la programmation des idées dans le compilateur, des idées telles que la liste des inclusions et de la mise en cache.

Le plus grand avantage de la programmation Fonctionnelle est la brièveté, parce que le code peut être plus concis. Un programme fonctionnel n'est pas de créer un itérateur variable pour être le centre d'une boucle, pour cela et pour d'autres types de frais généraux sont éliminés à partir de votre code.

L'autre avantage majeur est la simultanéité, ce qui est plus facile à faire avec la programmation fonctionnelle, car le compilateur est de prendre soin de la plupart des opérations qui nécessitent d'établir manuellement les variables d'état (comme l'itérateur dans une boucle).

Certains avantages de performance peut être vu dans le contexte d'un seul processeur ainsi, selon la façon dont le programme est écrit, parce que la plupart des langages fonctionnels et de prise en charge des extensions d'évaluation différée. En Haskell, vous pouvez dire "ce label représente un tableau contenant tous les nombres pairs". Un tel tableau est infiniment grand, mais vous pouvez demander pour le 100 000 ème élément de ce tableau, à tout moment, sans avoir à connaître--au tableau de l'initialisation du temps--ce que la valeur la plus grande est que vous allez avoir besoin. La valeur sera calculée uniquement lorsque vous en avez besoin, et rien de plus.

31voto

Kirk Strauser Points 12087

Le principal avantage est que ce n'est pas ce à quoi vous êtes habitué. Choisissez une langue comme Scheme et apprenez à résoudre les problèmes avec elle. Vous deviendrez ainsi un meilleur programmeur dans les langues que vous connaissez déjà. C'est comme apprendre une deuxième langue humaine. Vous supposez que les autres sont essentiellement une variante de votre propre chef parce que vous n'avez rien à comparer. L'exposition à d'autres personnes, notamment celles qui ne sont pas liées à ce que vous savez déjà, est instructive.

12voto

Robert Harvey Points 103562

Pourquoi la programmation fonctionnelle est importante
http://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf

11voto

sepp2k Points 157757

Un bon point de départ serait donc d'essayer de comprendre certaines choses qui ne sont pas possibles dans des langages impératifs, mais possible dans les langages fonctionnels.

Si vous parlez de la compilation, il n'y a évidemment rien de ce qui est possible dans le fonctionnel, mais pas la programmation impérative (ou vice versa).

Le point de différents paradigmes de programmation n'est pas de rendre les choses possibles qui n'était pas possible avant, c'est pour faciliter les choses qui ont été dur avant.

Programmation fonctionnelle vise à vous permettre de plus facilement écrire des programmes qui sont concis, sans bug et parallélisables.

6voto

Samuel Jack Points 14556

Il n'a pas à être l'un ou de l'autre: à l'aide d'un langage comme C#3.0 permet de combiner les meilleurs éléments de chaque. OO peut être utilisé pour les structures à grande échelle au niveau de la classe et au-dessus, style Fonctionnel à la petite taille de la structure au niveau de la méthode.

À l'aide de la Fonctionnelle de style permet à du code écrit qui déclare son intention clairement, sans être mélangés avec des instructions de flux de contrôle, etc. En raison des principes comme effet secondaire de programmation libre, il est beaucoup plus facile de raisonner sur le code, et d'en vérifier l'exactitude.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X