J'ai souvent entendu que la programmation fonctionnelle résout beaucoup de problèmes qui sont difficiles dans la procédure ou de la programmation impérative. Mais j'ai aussi entendu dire que ce n'est pas idéal à certains autres problèmes que la programmation procédurale est tout naturellement grand, à l'.
Avant de me casser mon livre sur Haskell et de plonger dans la programmation fonctionnelle, j'aimerais au moins une idée de base de ce que je peux vraiment utiliser pour (en dehors des exemples dans le livre). Alors, quels sont ces choses que la programmation fonctionnelle excelle? Quels sont les problèmes qu'il n'est pas bien adapté pour?
Mise à jour
J'ai de bonnes réponses à ce sujet jusqu'à présent. Je ne peux pas attendre pour commencer à apprendre Haskell maintenant, je dois juste attendre jusqu'à ce que je maitrise le C :)
Raisons pour lesquelles la programmation fonctionnelle est grande:
- Très concis, il peut exprimer des idées complexes en bref, unobfuscated consolidés.
- Est plus facile à vérifier que les langages impératifs, -- où la sécurité est essentielle.
- La pureté des fonctions et de l'immuabilité de données, la programmation simultanée de plus en plus plausible.
- Bien adapté pour le script et l'écriture de compilateurs (j'apprécierais de savoir pourquoi si).
- Mathématiques liés à des problèmes sont résolus simplement et magnifiquement.
Les zones où la programmation fonctionnelle, les luttes:
- Discutable: les applications web (même si je suppose que cela dépendra de l'application).
- Les applications de bureau (bien que cela dépend de la langue sans doute, F# serait bon à ce jeu ne serait-il pas?).
- Quand la performance est essentielle, comme les moteurs de jeu.
- En ce qui concerne beaucoup de programme de l'état.