Les Streams en JAVA 8
Dans cet article nous verrons comment les Streams nous permettent d’effectuer des traitements sur des collections d’une manière simple et performante.
C#, JavaScript, Python,… la langue du développeur ne cessent d’évoluer et de s’enrichir. De nouveaux langage voient le jour régulièrement.
Dans cet article nous verrons comment les Streams nous permettent d’effectuer des traitements sur des collections d’une manière simple et performante.
A quelle image pourrait-on associer le développement ? On pourrait volontiers le comparer au jeu Lego. A cette différence près qu’en programmation objet (POO), on construit les briques pour assembler des ensembles plus gros et ainsi de suite. Mais cette image est particulièrement statique. C’est l’une des différences fondamentales avec la programmation fonctionnelle qui est beaucoup plus vivante et dynamique. Nombreux sont ceux qui partagent ce point de vue, et pour vous en convaincre, visionnez donc cette vidéo : IF YOU’RE NOTLIVE CODING, YOU’RE DEAD CODING.
La résolution des implicites scala prennent place lors de la compilation. Mais comment en être sûr ? Prenons un exemple simple…
Les implicits sont des concepts qui peuvent sembler “magiques” et assez déroutants quand on tombe sur eux pour la première fois. Néanmoins, pour peu que l’on en fasse bon usage, ils peuvent simplifier la vie des devs. Mais qu’entend-on par “implicits” ? À quoi servent-ils ? Comment fonctionnent-ils ? C’est ce que nous allons tenter de comprendre.
Le pattern matching, ou filtrage par motif, est un des outils de programmation fonctionnelle dont les capacités sont parmi les plus subtiles à apprécier pour les développeurs, surtout s’ils font beaucoup de programmation objet. Si vous l’avez déjà rencontré, vous l’avez certainement comparé (au moins dans un premier temps) à une série de if voire d’instructions switch sous stéroïde. Il peut d’ailleurs tout à fait remplacer cette instruction. Mais en réalité, l’intérêt du pattern matching réside dans sa capacité à déconstruire l’encapsulation en posant des conditions de structure afin d’extraire des valeurs et de les manipuler. Bref, c’est une façon très commode de traiter les données. Et je vais vous le démontrer.
Posons le décor : vous êtes à un entretien. Tout se passe bien. Quand tout à coup, la fameuse question sur la récursivité arrive. Aucun souci pour le développeur que vous êtes, vous savez ce qu’est une fonction récursive. Vous implémentez donc une solution au problème posé. Et voici le résultat obtenu : Exception in thread « main » java.lang.StackOverflowError.