📜 Récap’
Types Option et Result
Option et ResultTypes union avec 2 cases respectifs
Option<'T>:Some<'T>etNoneResult<'T, 'E>:Ok<'T>etError<'E>
A quoi ils servent :
Modéliser absence de valeur et erreurs métier
Opérations partielles rendues totales
tryXxxSmart constructor
tryCreate
Comment on s'en sert :
Chaînage :
map,bind,filter→ ROPPattern matching
Leurs bénéfices :
nullfree,Exceptionfree → pas de guard polluant codeRend logique métier et happy path + lisible
Computation expression (CE)
Sucre syntaxique : syntaxe intérieure standard ou "bangée" (
let!)Separation of Concerns : logique métier vs « machinerie »
Compilateur fait lien avec builder
Objet stockant un état
Build une valeur en sortie, d'un type spécifique
Imbricables mais pas faciles Ă combiner !
Concepts théoriques sous-jacents
Monoïde →
seq(d'éléments composables et avec un "zéro")Monade →
async,option,resultApplicative →
validation/Result<'T, 'Err list>
Librairies NuGet : FSharpPlus, FsToolkit, Expecto, Farmer, Saturn
Ressources complémentaires 🔗
Compositional IT (Isaac Abraham)
F# for Fun and Profit (Scott Wlaschin)
The Option type, Jun 2012
Making illegal states unrepresentable, Jan 2013
Série de 11 articles sur les CE, Jan 2013
Série de 7 articles sur monades 'n co, Aug 2015
Mis Ă jour
Ce contenu vous a-t-il été utile ?