Le mois prochain, je vais travailler sur un nouveau projet de R&D qui adoptera un langage de programmation fonctionnel (j'ai voté pour Haskell, mais pour l'instant F# a obtenu plus de consensus). J'ai déjà joué avec ces langages pendant un certain temps et développé quelques outils en ligne de commande avec eux, mais il s'agit d'un projet plus important et j'essaie d'améliorer mes connaissances et mes techniques de programmation fonctionnelle. J'ai également lu beaucoup sur le sujet, mais je ne trouve aucun livre ou ressource qui documente les anti-modèles dans le monde de la programmation fonctionnelle.
Maintenant, apprendre les anti-modèles signifie que apprendre à connaître les échecs d'autres personnes intelligentes Je suis assez expérimenté pour choisir judicieusement quand quelque chose qui est généralement un anti-modèle, répond parfaitement à mes besoins. Mais je peux choisir cela parce que je connais la leçon apprise par d'autres gars intelligents.
Ainsi, ma question est la suivante : existe-t-il des documenté anti-modèles en programmation fonctionnelle ? Jusqu'à présent, tous mes collègues m'ont dit qu'ils n'en connaissaient aucun, mais ils ne peuvent pas dire pourquoi.
- Si oui, veuillez inclure un seul lien vers une source faisant autorité (un catalogue, un essai, un livre ou équivalent).
- Si non, veuillez appuyer votre réponse en un théorème propre .
S'il vous plaît ne transformez pas cette question en liste : il s'agit d'une question booléenne qui nécessite simplement une preuve pour évaluer la réponse. Par exemple, si vous êtes Oleg Kiselyov, "Oui" est suffisant, puisque tout le monde pourra trouver votre essai sur le sujet. Soyez tout de même généreux.
Notez que je recherche des anti-modèles formels, et non de simples mauvaises habitudes ou mauvaises pratiques.
De la Lien vers l'article de wikipedia sur les anti-modèles. :
... au moins deux éléments clés doivent être présents pour distinguer formellement un véritable anti-modèle d'une simple mauvaise habitude, mauvaise pratique ou mauvaise idée :
- un schéma répété d'action, de processus ou de structure qui semble initialement bénéfique, mais qui produit finalement plus de mauvaises conséquences que de résultats bénéfiques, et
- il existe une solution alternative clairement documentée, éprouvée dans la pratique réelle et reproductible.
De plus, par "documenté", j'entends quelque chose de auteurs faisant autorité o sources connues .
Les langues auxquelles je suis habitué sont :
- Haskell (où je commence vraiment à penser que si le code se compile, il fonctionne !)
- Scala
- F#
mais je peux aussi adapter mes connaissances sur les anti-modèles documentés dans d'autres langages fonctionnels.
J'ai beaucoup cherché sur le web, mais toutes les ressources que j'ai trouvées sont soit liées à la POO, soit à la disposition des fonctions (définir une variable au début de la fonction, etc...).