Question

Je cherche à comprendre les concepts de programmation fonctionnels.

Cela fait de nombreuses années que j'utilise Javascript pour les scripts côté client dans les applications Web. Outre l'utilisation de prototypes, il s'agissait d'une simple manipulation DOM, d'une validation des entrées, etc.

Dernièrement, j'ai souvent lu que Javascript est l'un des langages qui prend en charge la programmation fonctionnelle. / p>

En raison de ma connaissance et de mon expérience de Javascript, ma préférence est de l’utiliser pour apprendre la programmation fonctionnelle. Je pense que je serais capable de me concentrer davantage sur les concepts fonctionnels principaux et de ne pas me perdre ou être distrait par une toute nouvelle syntaxe.

En résumé, le langage Javascript est-il un bon choix pour apprendre les concepts de la programmation fonctionnelle? Quelles fonctionnalités en Javascript sont pertinentes / prennent en charge la programmation fonctionnelle?

Était-ce utile?

La solution

Autres conseils

Le

Javascript supérieur est un moyen de vous familiariser avec les aspects fonctionnels de javascript. C'est aussi une lecture relativement courte au cas où vous voudriez vous mouiller les pieds sans plonger dans un livre plus volumineux.

Je dirais que bien que vous puissiez saisir rapidement certains concepts de programmation fonctionnels avec JavaScript, l’utilisation systématique de JavaScript comme un langage de programmation fonctionnel n’est pas une pratique courante. Du moins pas évidemment commun. La plupart des gens ne publient pas de tutoriels qui expliquent comment faire de la programmation fonctionnelle avec JavaScript - celui que marxidad a souligné est en fait un exemple assez décent, mais vous n'en trouverez pas beaucoup. Les aspects fonctionnels ne sont pas souvent apparents, comme lorsque les utilisateurs utilisent des fermetures en JavaScript, sans savoir qu'ils le font.

L’idée que vous transmettiez deux fonctions en tant qu’arguments à une troisième fonction, puis que la valeur de retour corresponde à une exécution liée aux deux premières fonctions est une technique avancée qui apparaît presque toujours uniquement dans le noyau de la fonctionnalité complète. des bibliothèques comme jQuery. Les fonctions anonymes auto-exécutables et similaires ont gagné du terrain, mais ne sont toujours pas utilisées de manière cohérente. La majorité des didacticiels se concentrent souvent sur les fonctionnalités OO de JavaScript, telles que la création de propriétés et de méthodes, la portée, le contrôle d'accès et l'utilisation de la propriété prototype de constructeurs. Honnêtement, si vous voulez une programmation fonctionnelle, je choisirais un langage strictement reconnu pour cette fonctionnalité.

Je ne me souviens pas qui a dit cela, mais javascript a été appelé "Schème avec syntaxe Algol". Donc, pour apprendre Scheme / Lisp, Javascript n'est pas un mauvais début. Notez cependant que les langages fonctionnels tels que Lisp sont assez différents des langages fonctionnels purs tels que Haskell.

En dehors des "fonctions de première classe" (Ce qui signifie que les fonctions sont des valeurs pouvant être affectées à des variables), la portée lexicale fait également partie intégrante de ce qui constitue un langage fonctionnel.

Javascript supérieur et Le petit Javascripter a déjà été mentionné. Ce sont deux excellents textes. De plus, la la programmation en JavaScript dans l'ordre supérieur peut être un début plus facile.

Bien que javascript supporte FP dans une certaine mesure, il ne l’encourage pas directement. C'est pourquoi des projets tels que Fonctionnel d'Oliver Steele existent, pour combler les lacunes. Je ne le recommanderais donc pas pour apprendre la PF. Découvrez F # à la place.

Je recommanderais de lire The Little Schemer , un livre assez mince sur la récursion et une bonne introduction au style fonctionnel. Bien que centré sur Scheme, il peut facilement être appliqué à JavaScript, voir http://javascript.crockford.com/ petit.html . Je l’ai trouvé très utile dans mon développement javascript, bien que cela devienne assez délicat à la fin.

Javascript est un langage multi-paradigme. Si votre objectif est d'apprendre des concepts de langage fonctionnel, essayez de commencer avec un langage purement fonctionnel, tel que OCaml ou < a href = "http://www.haskell.org/" rel = "nofollow noreferrer"> Haskell .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top