Location via proxy:
[ UP ]
[Report a bug]
[Manage cookies]
No cookies
No scripts
No ads
No referrer
Show this form
Soumettre la recherche
Les monades Scala, Java 8
•
0 j'aime
•
1,169 vues
Fabrice Sznajderman
Suivre
Technozaure juin 2015
Lire moins
Lire la suite
1 sur 32
Télécharger maintenant
Contenu connexe
Les monades Scala, Java 8
1.
Les monades Scala, Java
8 Fabrice Sznajderman - Technozaure juin 2015
2.
Qui suis-je? • Chez
Zenika depuis décembre 2014 • Développeur • Java / Scala / Web • Big Data • Actuellement en mission chez ERDF
3.
Les Monades
4.
Objectifs • Définition (claire) •
Les types monadiques • Live coding
5.
Sondage • Qui connait
le terme « monade »?
6.
Sondage • Qui pense
ne jamais avoir utilisé une monade?
7.
Définition Chapitre 1
8.
Innocence…
9.
Définition formelle Théorie des
catégories source : Wikipédia
10.
Oh non !
11.
Définition formelle
12.
Définition pragmatique
13.
Une monade, c’est
comme une boite …
14.
? … vide ou
ayant un contenu …
15.
… qui fournit
des opérations … ? . Op
16.
… (que l’on
peut chaîner) … ? . Op1 . Op2 . Op3
17.
? … que l’on
va pouvoir appliquer sur le contenu (présent ou non) . Op
18.
Opérations • map() • flatmap() •
fold() • foreach() • filter() • …
19.
Définition pragmatique « Une monade
est comme une boite, vide ou ayant un contenu, qui nous fournit des opérations au dessus de la valeur éventuellement encapsulée. »
20.
Les types monadiques Chapitre
2
21.
Scala • Option • Try •
Either • List
22.
Option • Présence /
absence d’une valeur • Some / None
23.
Try • Gestion des
exceptions • Failure / Success
24.
Either • Gestion de
cas d’erreur (~ Try) • Left / Right
25.
List • Ensemble d’élément
de même type
26.
Java 8 • Optional •
Stream • Try (https://github.com/jasongoodwin/better-java-monads)
27.
Optional • Présence /
absence d’une valeur • Pas de sous type
28.
Stream • Ensemble d’élément
de même type • Flux
29.
Try • Gestion des
exceptions • Non intégré au JDK
30.
Live coding Chapitre 3
31.
Conclusion • + Lisibilité •
- Complexité • Il faut garder la maitrise
32.
Option(questions).map( _.answers).getOrElse(“Merci de
votre attention!”)
Télécharger