Monade
La monade Maybe
· ☕ 12 min de lecture

Dans cet article, je souhaite introduire le programmeur à la monade Maybe. Je compte le faire en utilisant le langage Haskell puisqu’il s’agit du langage fonctionnel que je maîtrise le mieux et que je le considère très expressif et accessible. Afin de démontrer les bénéfices de la monade et des concepts d’Haskell, je vais comparer ceux-ci aux méthodes usuelles du langage C++.

En une phrase, la monade Maybe peut être vue comme un design pattern de gestion des cas d’erreur ou d’exception. Je vais donc utiliser un exemple fictif et peu réaliste, mais simple, qui permet de capturer l’idée générale. Disons qu’on a une liste de contacts pour lesquels on souhaite exécuter un traitement. Cependant, on décide que, dans la région du programme où on implémente le code associé à cette liste de contact, une opération qui échoue sur un contact devrait arrêter le fil d’exécution du programme.