J'ai essayé d'apprendre la programmation fonctionnelle et la plupart des tutoriels que j'ai trouvés utilisent les mathématiques comme exemples pour les constructions les plus compliquées (même les plus simples dans certains cas). Pourquoi est-ce? J'imagine que quelque chose de plus simple pourrait être utilisé. Cela rend son apprentissage difficile.
Informations générales: j'écris des logiciels depuis 12 ans. Je comprends certains des concepts tels que les fermetures, les fonctions de citoyens de première classe et les génériques. Je peux avoir des problèmes avec des fonctions d'ordre supérieur à un niveau avancé, mais j'aimerais croire que j'ai une compréhension de base. Les monades me mordent dans le cul, et à ce stade, je n'ai pas dépassé cela (je suis sûr que je finirai par le faire, car je suis persistant).
la source
Réponses:
Ils utilisent les mathématiques parce que la programmation fonctionnelle est très bonne pour modéliser les constructions mathématiques et est très liée aux concepts mathématiques, en particulier Lambda Calculus. De plus, comme les E / S sont généralement un sujet assez épineux et avancé dans de nombreuses langues du paradigme fonctionnel, les mathématiques via les REPL des différentes langues deviennent un bon moyen d'enseigner la langue au début.
Parce que la programmation fonctionnelle traite les fonctions comme des constructions de première classe dans le langage de programmation, la génération de fonctions devient très importante. Par conséquent, les mathématiques supérieures deviennent assez importantes, en particulier la théorie des graphes.
Les langages impératifs sont tout aussi mathématiques, mais tout est arithmétique à la base car ils sont plus proches de la machine, ce qui ne peut que s'ajouter de toute façon. Les langages fonctionnels avec leur abstraction plus élevée tendent davantage vers les mathématiques. L'utilisation générale dans le monde universitaire n'aide pas non plus car ils sont habitués et donc enseignés par des gens qui connaissent beaucoup de mathématiques et enseignent à des personnes qui s'attendent à apprendre beaucoup de mathématiques. Il est donc possible de "baisser le ton" pour ainsi dire, mais c'est peu probable compte tenu de ces facteurs.
http://learnyouahaskell.com/ - C'est probablement l'une des introductions les plus douces à la programmation fonctionnelle, j'ai vérifié deux fois et il n'y a rien au-delà de l'algèbre de base et de la théorie des graphes.
la source
Il existe de nombreuses raisons, et elles sont toutes liées:
De plus, la FP n'est pas plus mathématique que les autres paradigmes, mais les concepts clés (fonctions de vrais citoyens de première classe, fonctions d'ordre supérieur, fermetures et pureté) nécessitent un certain état d'esprit. À un certain moment, votre esprit devrait "cliquer"; si vous comprenez ces 4 idées fondamentales, le reste sera probablement aussi simple que tout autre paradigme.
la source
C'est parce que fondamentalement, la programmation informatique est mathématique. Les langages fonctionnels ont été conçus dans cet esprit et c'est pourquoi la plupart des didacticiels sont axés sur les mathématiques.
Il est difficile d'apprendre si vous n'êtes pas habitué à penser que la programmation informatique a une base mathématique.
la source
Je pense que "The Little Schemer" est une formidable introduction à la programmation fonctionnelle et n'est pas du tout mathématique. Il n'entre pas dans les monades, il peut donc être trop basique pour vos goûts, mais fait une dérivation du combinateur Y vers la fin.
Je l'ai récemment passé en revue après n'avoir fait aucune programmation fonctionnelle depuis l'université il y a 12 ans, et c'était un excellent rappel, je me sens vraiment prêt à aborder des choses plus avancées après avoir travaillé la plupart des problèmes du livre en utilisant Racket.
la source