IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Expert éminent sénior

    Homme Profil pro
    Étudiant
    Inscrit en
    août 2011
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : août 2011
    Messages : 283
    Points : 18 075
    Points
    18 075
    Par défaut Ramda : une bibliothèque pour faire de la programmation fonctionnelle avec JavaScript
    Ramda : une bibliothèque pour faire de la programmation fonctionnelle avec JavaScript
    Disponible en open source, elle inclut la curryfication automatique

    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 - Visualiser dans une fenêtre à part
    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 ?

  2. #2
    Membre confirmé
    Avatar de vincent.mbg
    Homme Profil pro
    Développeur Python
    Inscrit en
    décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Python

    Informations forums :
    Inscription : décembre 2007
    Messages : 327
    Points : 627
    Points
    627
    Par défaut
    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.
    Mon guide pour apprendre Tkinter - N'oubliez pas de consulter les FAQ Python ou de visiter mon blog

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/02/2014, 01h26
  2. Réponses: 1
    Dernier message: 12/07/2009, 13h29
  3. Une bibliothèque pour faire autre chose que jouer avec ma carte graphique ?
    Par Neilos dans le forum Coprocesseurs et calcul hétérogène
    Réponses: 7
    Dernier message: 09/11/2006, 09h51
  4. Réponses: 3
    Dernier message: 08/11/2006, 13h06
  5. Réponses: 8
    Dernier message: 06/12/2005, 11h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo