Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

Le , par Arsene Newman

0PARTAGES

1  0 
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 ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de 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.
3  0