Imaginons que nous allons terminer une tâche maintenant: écrivez autant que possible le code JavaScript en fonction des principes des langages fonctionnels.
La prochaine série d'articles est de vous permettre de commencer ce voyage. Premièrement, nous devons corriger certains des concepts d'erreurs de langage fonctionnel qui peuvent être dans votre esprit.
Les formules fonctionnelles dans la langue JS sont sérieusement mal comprises.
De toute évidence, il y a beaucoup de développeurs qui souhaitent utiliser le paradigme fonctionnel de JavaScript chaque jour. Je dirais qu'il y a une plus grande partie des développeurs JavaScript qui ne comprennent pas vraiment ces choses.
Je pense que la raison en est que la plupart des langages de développement utilisés sur le serveur Web sont dérivés de C, et tout le monde sait que ces langages ne sont pas des langages fonctionnels.
Il y a généralement deux niveaux de confusion. La première couche concerne l'utilisation dans l'exemple suivant, qui est une utilisation très courante dans jQuery:
$ (". Signup"). Cliquez sur (fonction (événement) {$ ("# SignUpModal"). Show (); event.PreventDefault ();});Dans le code ci-dessus: nous passons une fonction anonyme en tant que paramètre, qui est la infâme fonction de rappel en JavaScript. Ces fonctions seront-elles appelées? Pas du tout!
L'exemple ci-dessus illustre une caractéristique clé d'un langage fonctionnel: une fonction est un paramètre. D'un autre côté, cet exemple viole presque tous les paradigmes de programmation fonctionnelle qui peuvent être violés en utilisant seulement trois lignes de code.
Le deuxième niveau de doute est plus subtil. Découvrez ceci: seuls quelques développeurs JS à la mode se regardent comme ceci:
Eh bien, c'est vraiment bien! Mais j'ai déjà une compréhension complète de la programmation fonctionnelle, et j'utilise un sous-ore.js dans tous mes projets.
Sous-sachet.js est une bibliothèque JavaScript très célèbre et omniprésente. Par exemple: Supposons que j'ai un ensemble de mots et j'ai besoin des deux premières lettres pour chaque mot. Ceci est très simple à écrire avec sous-traitant.js:
var firstwoletters = fonction (mots) {return _.map (mots, fonction (word) {return _.first (word, 2);});};Regardez cet exemple JavaScript. J'ai utilisé les fonctions exquises et pratiques dans la formule de fonction: _.map et _.first. Qu'en pensez-vous?
Bien que des fonctions comme sous-sol.js et _.map soient toutes deux des paradigmes fonctionnels utiles, assembler ces choses comme celle-ci dans cet exemple me rend toujours un peu difficile à comprendre. Avons-nous vraiment besoin de faire cela?
Si nous commençons à réfléchir à la façon d'être plus "fonctionnel", nous pouvons peut-être réécrire l'exemple ci-dessus comme ceci:
// ... un peu de MagicVar FirstTwoletters = Map (First (2));
Si vous y pensez attentivement, cette ligne de code a le même effet que les 5 lignes ci-dessus. De nombreux mots ne sont que des paramètres ou des espaces réservés. La vraie logique consiste à combiner la fonction de carte, la première fonction et la constante 2 d'une manière significative.
Certaines personnes peuvent se demander: quelle est la magie dans cet exemple? Après tout, c'est un peu comme se vanter de dire que tout exemple est magique, non?
Je prévois d'utiliser les deux prochains articles pour expliquer quel est l'exemple ci-dessus. Si vous êtes curieux, vous pouvez continuer à lire.
Cette série de blogs est de vous aider à appliquer la beauté de la programmation fonctionnelle à votre code JavaScript.
Dans la section suivante, je discuterai de divers éléments de fonctionnel et non fonctionnel dans la langue javascript. Avec ces connaissances, nous pouvons lentement former un système complet de programmation fonctionnelle dans notre cerveau en intégrant ces éléments et comprendre leurs performances en JavaScript.