📜 Récap’
Types Option
et Result
Option
et Result
Types union avec 2 cases respectifs
Option<'T>
:Some<'T>
etNone
Result<'T, 'E>
:Ok<'T>
etError<'E>
A quoi ils servent :
Modéliser absence de valeur et erreurs métier
Opérations partielles rendues totales
tryXxx
Smart constructor
tryCreate
Comment on s'en sert :
Chaînage :
map
,bind
,filter
→ ROPPattern matching
Leurs bénéfices :
null
free,Exception
free → 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
,result
Applicative →
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)
Dernière mise à jour
Cet article vous a-t-il été utile ?