Programmation fonctionnelle, bibliothèque de problèmes Java Baidu Cloud

Cxyyidd 2021-08-19 22:49:54 阅读数:534

programmation fonctionnelle biblioth que probl

 Invariance

Un autre principe de la philosophie de programmation fonctionnelle est de ne pas modifier les données en dehors de la fonction.En fait,,Cela signifie éviter de modifier les paramètres d'entrée de la fonction.Au contraire.,La valeur de retour de la fonction doit refléter le travail accompli.C'est une façon d'éviter les effets secondaires.Quand la fonction fonctionne sur un système plus grand,Il est plus facile de déduire l'effet de la fonction.

 Fonction de niveau 1

En plus de l'idéal purement fonctionnel,Dans la pratique du codage,La programmation fonctionnelle dépend des fonctions de première classe.Une fonction de première classe est considérée comme“Les choses elles - mêmes”Fonction de,Être capable d'exister et d'être traité indépendamment.La programmation fonctionnelle tente d'utiliser le support linguistique pour utiliser une fonction comme variable、Paramètres et valeurs de retour pour créer un code élégant.

 Des informations sur les prostituées

Parce que les fonctions de premier ordre sont si flexibles et utiles,Même si c'est comme Java Et C# C'est si fort OOP La langue s'est également tournée vers la fusion d'un support fonctionnel de premier ordre.C'est ça. Java 8 Soutien Lambda La force motrice derrière l'expression.

Une autre façon de décrire une fonction de premier ordre est d'utiliser la fonction comme données.C'est - à - dire,La première classe de fonctions peut être assignée à une variable comme n'importe quelle autre donnée.Quand vous écrivez,let myFunc = function(){} Vous utilisez une fonction comme données .

  Fonction d'ordre supérieur

Une fonction qui accepte une fonction comme paramètre ou comme fonction de retour est appelée une fonction d'ordre supérieur —— Une fonction qui fait fonctionner une fonction .

Ces dernières années,JavaScipt Et Java A ajouté une syntaxe de fonction améliorée .Java Ajout d'opérateurs de flèches et de deux points .JavaScript Opérateur de flèche ajouté . Ces opérateurs sont conçus pour faciliter la définition et l'utilisation des fonctions , Surtout en ligne comme fonction anonyme . Une fonction anonyme est une fonction définie et utilisée sans une variable de référence donnée .

Exemple de programmation fonctionnelle :Ensemble

Peut - être que l'exemple le plus remarquable de programmation fonctionnelle est le traitement des collections . C'est parce que la capacité d'appliquer des blocs de fonctions à travers les éléments d'une collection est un ajustement naturel de l'idée de fonctions pures .

 In JavaScript Utilisé dans map() Et les fonctions anonymes


let letters = ["a", "b", "c"];
console.info( letters.map((x) => x.toUpperCase()) ); // outputs ["A", "B", "C"]

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

La beauté de cette syntaxe est que le Code est très concentré . Pas besoin de tuyauterie de commande , Comme les boucles et les opérations de tableau . .Ce code exprime clairement le processus de réflexion sur ce qui est fait .

Utiliser Java Les opérateurs de flèches peuvent atteindre le même objectif

 Des informations sur les prostituées

 In Java Utilisé dans map() Et les fonctions anonymes


import java.util.*;
import java.util.stream.Collectors;
import static java.util.stream.Collectors.toList;
//...
List lower = Arrays.asList("a","b","c");
System.out.println(lower.stream().map(s -> s.toUpperCase()).collect(toList())); // outputs ["A", "B", "C"]

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

Utiliser Java 8 Pour exécuter la même tâche pour la liste des majuscules .Votre attention, s'il vous plaît., La syntaxe de l'opérateur de flèche centrale est en fait similaire à JavaScript Même chose., Ils font la même chose , C'est - à - dire créer un paramètre d'acceptation 、 Une fonction qui exécute la logique et renvoie une valeur .( Il est important de noter , S'il manque des accolades autour du corps de la fonction ainsi définie , La valeur de retour est automatiquement donnée .)

Continue. Java, Considérez l'opérateur à deux points . Cet opérateur vous permet de faire référence aux méthodes de la classe :Dans ce cas,,toUpperCase- Oui. String Méthode sur la classe . Différentes syntaxe s'appliquent à différents scénarios .


// ...
List upper = lower.stream().map(String::toUpperCase).collect(toList());

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

Dans les trois exemples ci - dessus , Vous pouvez voir que les fonctions d'ordre supérieur fonctionnent .map() Les fonctions dans les deux langues acceptent les fonctions comme arguments .

En d'autres termes,, Vous pouvez passer une fonction à une autre (In Array API Moyen ou autre ) En tant qu'interface fonctionnelle . Fonction fournisseur ( En utilisant la fonction paramètre ) C'est un plug - in pour la logique générale .

Ça ressemble beaucoup à OOP Modèle de politique en(En fait,,In Java Moyenne, Une interface avec une seule méthode est générée dans les coulisses ), Mais la compacité de la fonction rend le Protocole des composants très compact .

Comme autre exemple ,Il est là. Node.js De Express Un gestionnaire de routage est défini dans le cadre .


var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('One Love!');
});

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

Un bon exemple de programmation fonctionnelle , Parce qu'il permet de définir clairement les définitions exactes nécessaires pour cartographier l'acheminement et traiter les demandes et les réponses —— Bien qu'il puisse être considéré comme un effet secondaire de manipuler l'objet de réponse dans une fonction .

 React Fonction de curriculation dans


### Enfin
Parce que le texte est trop long,Il ne s'agit pas d'une introduction,**Celui - ci.JavaLes notes d'étape de l'architecture d'arrière - plan comprennent:JavaEnsemble,JVM、JavaConcurrence、Microservices、SpringNettyAvec RPC 、Réseau、Log 、Zookeeper 、Kafka 、RabbitMQ 、Hbase 、MongoDB、Cassandra 、JavaBase、Équilibrage de la charge、Base de données、Algorithme de cohérence、JavaAlgorithmes、Structure des données、Cache distribué**Attendez que la connaissance soit détaillée.
![image](https://s2.51cto.com/images/20210819/1629383848126946.jpg)
Ce système de connaissances s'applique à tous lesJavaApprentissage des programmeurs,Les points de connaissance du catalogue ci - dessus sont expliqués et présentés en détail,Maîtriser tout le contenu de ce point de connaissance vous donnera une amélioration qualitative,**Il résume également de nombreux problèmes rencontrés au cours de l'entrevue et a un résumé analytique vidéo correspondant.**
**[Les amis dans le besoin peuvent cliquer ici pour obtenir gratuitement](https://gitee.com/vip204888/java-p7)**
![image](https://s2.51cto.com/images/20210819/1629383849307847.jpg)
![image](https://s2.51cto.com/images/20210819/1629383849644456.jpg)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
Copyright:Cet article est[Cxyyidd]Établi,Veuillez apporter le lien original pour réimprimer,remercier。 https://fra.fheadline.com/2021/08/20210819224950017M.html