📜 Récap’

Types Option et Result

  • Types union avec 2 cases respectifs

    • Option<'T> : Some<'T> et None

    • Result<'T, 'E> : Ok<'T> et Error<'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 → ROP

    • Pattern matching

  • Leurs bĂ©nĂ©fices :

    • null free, Exception free → pas de guard polluant code

    • Rend 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)

Mis Ă  jour

Ce contenu vous a-t-il été utile ?