Ce que j’ai retenu de The Power of Composition (Scott Wlaschin) — en essayant de composer, on en vient au currying et aux monades
(ohyecloudy.com)- La composition, l’une des façons de réutiliser du code, concerne les types et les fonctions
- Les types se composent avec AND ou OR
- Quand le nombre d’inputs et d’outputs est le même, la composition de fonctions est simple
- Il suffit de passer l’output d’une fonction comme input de la suivante
- Quand les quantités diffèrent, il faut un moyen de résoudre ce problème
- Quand il y a plus d’inputs, on utilise le currying
- Il permet de ramener le nombre d’inputs à un seul
- Quand il y a plus d’outputs, on utilise une monade
- Elle permet de ramener le nombre d’outputs à un seul, puis de distinguer ce qui est traité de ce qui ne l’est pas
- Ce qui est traité est simplement transmis à la fonction suivante
- Ce qui ne l’est pas fait l’objet d’une tentative de traitement par la fonction
- En fait, c’est bien cela qu’est une monade
- On place l’output dans une monade et on compose les fonctions avec
bind
- Elle permet de ramener le nombre d’outputs à un seul, puis de distinguer ce qui est traité de ce qui ne l’est pas
Le fait d’expliquer cela par la composition de fonctions, tout en répondant à la question « pourquoi ? », rend la compréhension beaucoup plus facile. Quand j’avais lu des textes qui expliquaient les monades comme quelque chose qu’on met dans une boîte puis qu’on en sort, je n’avais pas vraiment compris. Avec le recul, je pense que c’était parce qu’il manquait justement la réponse au « pourquoi ».
2 commentaires
Très bonne lecture~
J’ai bien lu. Vu comme ça, c’est facile à comprendre.