Ramda : une bibliothèque pour faire de la programmation fonctionnelle avec JavaScript
Open source, elle inclut la curryfication automatique

Le , par Arsene Newman, Expert éminent sénior
Les langages fonctionnels auraient-ils le vent en poupe ? C’est peut être le cas et certains développeurs repensent leurs applications à l’image d’IMVU qui a réécrit une partie du back-end de son application en langage Haskell, d’autres encore penchent pour le développement de bibliothèques dédiées à la programmation fonctionnelle en se basant sur des langages usuels très connus.

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);
Enfin, il est important de noter que Ramda est open source et peut être utilisée avec Node.js ou par un navigateur. Elle représente une bonne alternative aux personnes souhaitant programmer avec les paradigmes de la programmation fonctionnelle tout en tirant avantage de la puissance et des fonctionnalités de JavaScript. Le seul reproche de Ramda est sa documentation qui manque de lisibilité.

Consulter le code source du projet

Et vous ?

Qu’en pensez-vous ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de vincent.mbg vincent.mbg - Membre confirmé https://www.developpez.com
le 05/06/2014 à 14:54
Bonjour,

Je trouve que JavaScript est déjà un langage de programmation fonctionnel, tout du moins plus proche d'un langage fonctionnel qu'objet.
du coup je trouve ça étrange de dire voici une bibliothèque pour faire du fonctionnel avec JS. C'est comme dire j'ai fait une librairie pour faire de
l'objet avec Java, du fait que j'ajoute des métaclasse par exemple.
Offres d'emploi IT
Data scientist senior H/F
Safran - Ile de France - Magny-les-Hameaux (Saclay)
Ingénieur H/F
Safran - Ile de France - Moissy-Cramayel (77550)
Consultant sap finance/controlling H/F
Safran - Ile de France - Vélizy-Villacoublay (78140)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil