Remi Forax
“In computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data (side effects).
source: Wikipedia.org - Functional Programming
“En informatique, la programmation fonctionnelle est un paradigme de programmation qui traite chaque calcul comme l'évaluation de fonctions mathématiques et évite les changements d'état et les données mutables (effets de bord).”
source: Wikipedia.org - Programmation fonctionnelle
JavaScript possède deux notations pour
pour les fonctions anonymes
forEach(fun) applique la même fonction à chaque valeur
comme une boucle sans écrire la boucle !
map(fun) créer un tableau qui contient les valeurs résultant de l'application la fonction à chaque valeur
filter(fun) créer un tableau avec les valeurs pour lesquelles l'appel de la fonction renvoie vrai
some renvoie vrai dès qu'une propriété est vérifiée
Note: il n'y a pas de parenthèse après greaterThan10 !
every demande à ce que la propriété soit vraie sur toutes les valeurs
Et si on veut écrire greaterThan(max) ?
On renvoie une closure !
Note: il y a des parenthèse après greaterThan() car la fonction renvoie une fonction !
Les méthodes forEach, map, filter, some, every prennent une fonction avec 2 arguments (élément, index) en paramètres
En JavaScript, une fonction peut prendre moins de paramètres que d'arguments
reduce(fun, init) résume par une valeur en appliquant une fonction d'agrégation
Il est possible de combiner les opérations
par ex., compter le nombre de mots commençant par 'b'