En savoir plus

Function style : deuxième partie

Dans le premier article sur les fonctions nous avons parlé de quelques unes des possibilités qu’offrent les fonctions mais il serait difficile de faire la différence avec un langage procédural non fonctionnel tel que le C sans aller un cran plus loin. Comme je l’ai déjà dit les fonctions sont vraiment centrales. Elles sont elles aussi une vraie source d’originalité. Nous allons donc aborder des pratiques plus avancées et plus originales de la programmation fonctionnelle.

Lire la suite
En savoir plus

Function style en F#

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.

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

La résolution des implicits Scala, une liberté qui a un coût

La résolution des implicites scala prennent place lors de la compilation. Mais comment en être sûr ? Prenons un exemple simple…

Lire la suite
Relaxed-businessman-sitting-in-chair
En savoir plus

Les “implicits” en Scala, ou comment sous-traiter au compilateur

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.

Lire la suite
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