Ma présentation à Devoxx France 2014: Ce Quickie est basé sur le talk de Bodil Stokke: What Every Hipster Should Know About Functional Programming. C'est un petit exercice basé sur la question suivante: peut-on transposer tous les exemples JS de son talk en Java 8 avec des lambdas? Au programme donc: First Class Function, Functor, High Order Function, Reduction, Combinator, Composition.
Les concepts de la programmation fonctionnelle illustrés avec java 8
1. 1
Les concepts de la
programmation fonctionnelle
illustrés avec Java 8
by Yannick Chartois
@ychartois
2. 2
Bodil Stokke
What Every Hipster Should Know About Functional
Programming
Vimeo / Parleys
Twitter: @ychartois – Github: https://github.com/ychartois/ProgFoncJava8
3. 3
Question
Maintenant que nous avons les lambdas, peut-on faire la
même chose avec Java 8?
Twitter: @ychartois – Github: https://github.com/ychartois/ProgFoncJava8
4. 4
First Class Function
Twitter: @ychartois – Github: https://github.com/ychartois/ProgFoncJava8
Définition
“Les fonctions sont traitées par le langage comme des valeurs de
première classe.”
6. 6
Higher order function
Twitter: @ychartois – Github: https://github.com/ychartois/ProgFoncJava8
Définition
“C'est une fonction qui prend une ou plusieurs fonctions comme
entrée et/ou qui renvoie une fonction”
8. 8
Functor
Twitter: @ychartois – Github: https://github.com/ychartois/ProgFoncJava8
Définition
“C'est une collection d'éléments X qui peut s'appliquer une fonction
f: X -> Y pour créer une collection Y”
10. 10
Reduction / Aggregation
Twitter: @ychartois – Github: https://github.com/ychartois/ProgFoncJava8
Définition
Higher order function dont le but est de produire une valeur qui est
le résultat de l’application d’un opérateur sur tous les éléments
d’une structure de donnée
12. 12
Combinator
Twitter: @ychartois – Github: https://github.com/ychartois/ProgFoncJava8
Définition
“C'est une fonction qui définie une nouvelle fonction à partir de ses
arguments ou d'autre combinators”
14. 14
Composition
Twitter: @ychartois – Github: https://github.com/ychartois/ProgFoncJava8
Définition
“Combine plusieurs fonctions pour créer une nouvelle fonction”