C’est le cas par exemple de Michael Hurley et Scott Sauyet qui ont développé Ramda, une bibliothèque dédiée à la programmation fonctionnelle écrite en JavaScript, au même titre qu’Underscore et Lodash.
Toutefois, contrairement aux deux bibliothèques citées précédemment qui gardent un semblant de langage non fonctionnel, la bibliothèque Ramda modèle le langage JavaScript à sa manière avec un résultat proche des langages fonctionnels, sans oublier qu’elle se base sur deux caractéristiques qu’elle ne partage pas avec ses concurrentes :
- Les fonctions en premier, les données en dernier : le développeur construit en premier ses fonctions puis introduit les données. Cette drôle de manière de procéder peut être vue comme un arbre où les fonctions (qui peuvent être vues comme des opérateurs) sont les nœuds et les données (qui peuvent être vues comme les opérandes) sont les feuilles.
- La curryfication automatique : principe cher à la programmation fonctionnelle, il permet de traduire une fonction à plusieurs arguments en une fonction à un argument qui retourne une fonction prenant le reste des arguments. Alors que pour les autres bibliothèques, la curryfication doit se faire de manière manuelle, Ramda le fait automatiquement pour toutes les fonctions prenant plus de deux paramètres en entrée.
Code : | Sélectionner tout |
1 2 3 4 5 | // fonction non curryfié var value=R.prop('myProperty',obj); // equivalent de la curryfication automatique de la fonction précédente var getprop=R.prop('myProperty'); var value=getprop(obj); |
Consulter le code source du projet
Et vous ?
Qu’en pensez-vous ?