Bienvenue à nouveau, ici Scott Stanley. Dans ces leçons nous allons jeter un oeil à l'impératif versus programmation déclarative, Lambdas, interfaces fonctionnelles et des fonctions de niveau supérieur. Alors dans cette leçon, nous allons nous intéresser spécifiquement à Qu'est-ce que la programmation impérative ? Qu'est-ce que la programmation déclarative ? Donc on voit ici, il existe plusieurs paradigmes de programmation différents, quelques approches pour résoudre les problèmes de programmation. L'approche impérative existe probablement depuis plus longtemps. Il définit un programme comme une séquence d'instructions qui modifient l'état du programme. Donc, vous avez généralement des variables de travail et boucles et généralement une bonne quantité de code. Alors que déclaratif d'autre part, est une approche qui exprime la logique d'un calcul sans décrire son flux de contrôle. C'est un peu comme déclarer ce que tu aimerais qu'il arrive et juste qu'il en soit ainsi, alors que l'impératif est de se retrousser les manches et écrire une bonne quantité de code. Et puis ils veulent que nous nous assurions que nous voyons ici qu'une fonction doit retourner une valeur basé uniquement sur l'argument et il ne devrait pas avoir d'effets secondaires. Je veux dire que c'est la définition classique d'une fonction. Généralement, lorsque nous parlons de programmation déclarative, la fonction est la prochaine chose dont on va commencer à parler alors. Nous avons une liste de type d'étudiant, quatre étudiants je suppose Scott, Tyler, Chris et Edward. Et puis avant chaque test dans la suite de l'unité J ici nous nous retrouverons avec une toute nouvelle liste d'étudiants pour chaque essai. Ainsi, de cette façon, il n'y a pas de résidu entre l'exécution des tests. Les tests sont ainsi totalement indépendants. Alors c'est ça. La première chose que nous regardons est une recherche qui utilise le style impératif. Et donc nous allons boucler sur tous les étudiants et nous essayons de déterminer si celui que quelqu'un cherche, dans ce cas, ils veulent savoir si Eddie Van Halen est ici, ils veulent savoir s'il existe. Donc, il y a notre booléen 'found = false', donc nous allons commencer pessimiste. Non, ça n'existe pas. Et l'ID que nous voulons rechercher est le numéro quatre. Voilà donc notre boucle. La première chose que nous ferons dans la boucle est-ce que cette carte d'étudiant est égale à celle à rechercher ? Si c'est le cas, nous disons que trouvé est égal à vrai et nous sortons de la boucle et nous reviendrions vrai à qui demandait cet étudiant existe-t-il? C'est une bonne quantité de code. La manière déclarative de résoudre ce même problème serait de demander aux élèves, quelle est la collection ici la liste des étudiants, demander aux élèves s'il contient Edouard. Et dans ce cas ce serait vrai. Donc, si nous allons voir comment cela a fonctionné, le code, plutôt que d'avoir à l'écrire chaque fois que vous voulez jouer à ce jeu, cet étudiant existe-t-il ou non, est contenu dans le type d'étudiant méthode égale. Donc plus tôt nous avons vu l'ordre naturel d'un étudiant était de me comparer à un autre étudiant par son nom de famille. Eh bien, ici, nous avons ajouté un égal dans un code de hachage c'est ce qui est appelé lorsque les collections ne contient pas est appelée. Alors revenons et regardons cela une fois de plus. Lorsque la collection contient la méthode est invoquée, la méthode étudiant égal est ce qui sera invoqué. Donc, la première chose qu'il va faire est de dire l'autre type d'objet est-il du même type que moi ? En d'autres termes, je veux m'assurer qu'un élève est comparé à un autre élève. Et à ce moment-là, je peux dire, ma carte d'identité correspond-elle à cette autre carte d'étudiant ? C'est donc une approche beaucoup plus propre. Et comme vous pouvez le voir si, si c'est la question que quelqu'un veut pouvoir vous demander, c'est beaucoup plus propre juste pour dire, 'Étudiants, est-ce que vous contient Edward ?' Beaucoup plus simple de faire ça que d'écrire tout ce code. Prenons donc un autre exemple ici et c'est un tri impératif utilisant un comparateur que nous avons vu cela, je crois, étudiants de tri de collection et triez-les de cette façon. Donc, si nous examinons les étudiants par comparateur de date de naissance, ben voilà, on va finir par trier les élèves, donné deux élèves à la fois en comparant leurs dates de naissance. Donc ils seront tous triés maintenant chronologiquement en fonction de leur date de naissance. Et la saveur déclarative de ce ne nous obligerait pas à écrire ceci, cela n'exigerait pas cela. La saveur déclarative de ce genre est ce que nous allons voir dans la prochaine leçon. Merci d'avoir regardé. La prochaine leçon sera Lambda et les interfaces fonctionnelles.