Pensée de style Ramda: Conclusion

1. Premiers pas
2. Combinez les fonctions
3. Utilisation partielle (curry)
4. Programmation déclarative
5. Notation quintessentielle
6. Immuabilité et objets
7. Immuabilité et réseaux
8. Objectifs
9. Conclusion


Cet article complète une série d'articles sur la programmation fonctionnelle appelée Ramda Style Thinking.


Dans les huit derniers articles, nous avons parlé de la bibliothèque JavaScript Ramda, qui fournit des fonctions pour travailler avec JavaScript dans un style fonctionnel, déclaratif et immuable.


Tout au long de cette série d'articles, nous avons appris que Ramda a quelques principes de base que son API suit:


  • Les données viennent en dernier: presque toutes les fonctions acceptent un paramètre avec les données comme dernier argument.
  • Curry: Presque toutes les fonctions de Ramda sont curry. Autrement dit, vous pouvez appeler une fonction avec seulement une partie des arguments requis et obtenir une nouvelle fonction qui attendra les arguments restants. Dès que tous les arguments sont fournis, la fonction d'origine sera appelée.

Ces deux principes nous permettent d'écrire du code fonctionnel très propre qui intègre les blocs de construction de base dans des opérations plus puissantes.


Résumé


Pour référence, voici un bref résumé d'une série d'articles.


  • Les premières étapes nous sont présentées par l'idée de fonctions, de fonctions pures et d'immuabilité. Elle nous présente ensuite les fonctions d'itération de la collection, telles que la map , le filter et la reduce .
  • La combinaison de fonctions nous montre comment nous pouvons combiner nos fonctions de différentes manières, en utilisant des outils tels que les both , either , pipe et compose .
  • Une utilisation partielle (curry) nous aide à comprendre quand et comment il peut être utile de fournir des arguments à une fonction et de pouvoir fournir le reste plus tard. Nous utilisons partial et curry pour nous aider avec cela et en savoir plus sur flip et placeholder ( __ )
  • La programmation déclarative nous apprend la différence entre la programmation impérative et déclarative. Nous apprendrons comment utiliser les substituts déclaratifs Ramda pour l'arithmétique, les comparaisons, la logique et les conditions.
  • La notation désemparée introduit l'idée d'un style désemparé, également connu sous le nom de «programmation silencieuse». Dans un style inutile, nous ne voyons pas d'arguments avec les données avec lesquelles nous travaillons, cela se fait implicitement. Nos programmes sont constitués de petits blocs simples qui se réunissent pour faire ce dont nous avons besoin. Ce n'est qu'à la toute fin que nous appliquons nos fonctions composites aux données pertinentes.
  • Immuabilité et objets nous ramène à l'idée de travailler dans un style déclaratif, c'est le moment d'obtenir les outils dont nous avons besoin pour lire, mettre à jour, modifier, supprimer et transformer les propriétés des objets.
  • Immuabilité et tableaux continue le sujet et nous montre comment effectuer des opérations similaires avec des tableaux.
  • Les objectifs complètent la série avec l'introduction du concept d'objectifs, une conception qui nous permet de nous concentrer sur de petites parties de grandes structures de données. En utilisant les fonctions d' view , de set et de over , nous pouvons lire, mettre à jour et transformer la valeur sur laquelle l'objectif est concentré dans le contexte de grandes structures de données.

Et ensuite?


Nous n'avons pas couvert toutes les subtilités de Ramda dans cette série d'articles. En particulier, nous ne parlions pas des fonctions de chaîne et ne parlions pas de concepts plus complexes, tels que les transducteurs .


Afin d'en savoir plus sur ce que Ramda peut faire, je vous recommande d'étudier sa documentation . Il y a une mine d'informations. Toutes les fonctions sont regroupées par type de données avec lesquelles elles fonctionnent, bien qu'il y ait un certain chevauchement. Par exemple, certaines fonctions permettant de travailler avec des tableaux fonctionnent également avec des chaînes et la map fonctionne avec des tableaux et des objets.


Si vous êtes intéressé par des sujets fonctionnels plus complexes, voici quelques endroits où vous pouvez aller:


  • Transducteurs: ici, vous pouvez lire un bon article d'introduction sur la façon d'analyser les journaux à l'aide de transducteurs.
  • Types de données algébriques: Si vous avez suffisamment lu sur la programmation fonctionnelle, vous avez entendu parler des types algébriques et des termes tels que «Functor», «Applicator» et «Monad». Si vous êtes intéressé à explorer ces idées dans le contexte de Ramda, consultez le projet ramda-fantasy , qui implémente certains types de données qui répondent à la spécification Fantasy Land (ou à la spécification JavaScript algébrique)



De l'auteur des traductions d'articles: si cela plaît au Seigneur, je continuerai à traduire des articles sur Ramda, en particulier, j'ai un désir de traduire un article sur l'utilisation de ramda avec redux , un article sur les composants fonctionnels avec des fonctions sans état React et Ramda , un article sur les réducteurs et sélecteurs modulaires , et probablement un article sur la mondialisation des sélecteurs redux .

Source: https://habr.com/ru/post/fr415037/


All Articles