En savoir plus

Le Pattern Matching, le Demolition Man intelligent

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.

Lire la suite
En savoir plus

La récursion terminale à la rescousse !

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.

Lire la suite
En savoir plus

Créer des types fonctionnels en F# et en Scala

Réaliser un programme c’est surtout manipuler des données. Il est donc recommandé de disposer d’entités spécialisées pour chaque cas d’utilisation de ces données. Cela tombe bien, les familles de langage offrent différentes manières de créer un type. Et la programmation fonctionnelle n’échappe pas à cette règle. Vous allez le voir, dans certains cas, ces “types” fonctionnels sont même des amis précieux. Exemples en F# et en Scala.

Lire la suite
En savoir plus

La programmation fonctionnelle, un nouvel espoir

Depuis une petite décennie, la programmation fonctionnelle suscite un regain d’intérêt de la part des communautés de développeurs. De nouveaux langages fonctionnels comme Elixir (2012), Clojure (2007) ou encore ELM (2012) sont apparus. Le concept de programmation fonctionnelle n’est pourtant pas nouveau. Le premier langage du genre, le LISP, est né quatre ans seulement après le FORTRAN. Ce qui en fait un des plus vieux langages de programmation. Le plus frappant c’est qu’il est toujours utilisé. Plusieurs caractéristiques peuvent expliquer sa longévité et sa pertinence.

Lire la suite
En savoir plus

Va ranger ta chambre : ou comment une liste est parfois plus rapide qu’un dictionary

“Va ranger ta chambre ! ”, l’hymne universel de tous les parents. Enfant, beaucoup d’entre nous ont pu remettre en cause le bien-fondé de ce genre d’injonction. Des années plus tard, quand Microsoft nous dit dans sa documentation que la recherche dans un dictionary se fait en temps constant (quasi O(1)), on serait tenté de l’accepter sans avoir recours à notre esprit critique. À tort peut-être ?

Lire la suite
En savoir plus

Créer des types fonctionnels en F# et en Scala

Réaliser un programme c’est surtout manipuler des données. Il est donc recommandé de disposer d’entités spécialisées pour chaque cas d’utilisation de ces données. Cela tombe bien, les familles de langage offrent différentes manières de créer un type. Et la programmation fonctionnelle n’échappe pas à cette règle. Vous allez le voir, dans certains cas, ces “types” fonctionnels sont même des amis précieux. Exemples en F# et en Scala.

Lire la suite