JavaScript fonctionnel

Paris Web'16

github.com/vincent/js-fp

say('Hello world')

Alain Vagner
@biou

procrastination fonctionnelle


Vincent Lark
@allyouneedisgnu

function is undefined

Introduction

  • Découverte de la prog. fonctionnelle
  • Concepts basiques et exemples concrets

  • Posez vos questions pendant l'atelier !

Warning

  • Malgré les syntaxes évoluées des specs modernes...
  • On utilisera ici ES5 / JS 1.8
  • Vérifiez la compatibilité sur MDN ou caniuse.com !

Définition

Une méthode de programmation qui préfère l'utilisation de fonctions aux changements d'état.

À quoi ça sert?

  • Moins d'effets de bords
  • Plus maintenable
  • Plus modulaire
  • Plus robuste

Getting started

Functions as first class citizen

Fonctions d'ordre supérieur


Les fonctions peuvent être passées en paramètre
et/ou en retour d'autres fonctions.

Collections

Fonctions pures
&
Effets de bord

Fonctions pures

Une fonction pure est une fonction déterministe sans changements d'état.

Elle n'utilise que ses paramètres et ses variables locales.

Pour quoi faire ?

En gardant des fonctions pures, on évite les mutations, et donc les effets de bords.

La POO et la prog. fonctionnelle sont incompatibles ?

Composition

Application partielle de fonction

Concepts avancés

Ecosystème

Les libs

Le futur

Questions ?