Après avoir appris Haskell et d'autres langages de FP pas si purs, j'ai décidé de lire sur la théorie des catégories. Après avoir acquis une bonne compréhension de la théorie des catégories, j'ai commencé à réfléchir à la façon dont les concepts de la théorie des catégories peuvent être utilisés pour penser à la conception de programmes, mais peu importe mes efforts, il semble que ce ne soit pas la voie à suivre.
Après avoir passé de nombreuses tentatives infructueuses pour relier la théorie des catégories à la conception de programmes, je suis arrivé à la conclusion que:
- La théorie des catégories est utile lors de la conception d'un langage de programmation .
- La théorie des catégories n'est pas quelque chose que vous utilisez lors de la conception de programmes (même lorsque vous utilisez un langage qui a été conçu sur la base des principes de catégorie). Par exemple: lors de la programmation dans Haskell, vous utiliserez des types, des constructeurs de types, des fonctions, des fonctions d'ordre supérieur, etc. pour concevoir votre programme, pas des concepts de théorie des catégories.
En résumé, nous avons un système de couches inférieures (l'ordre est faible à élevé):
Théorie des catégories -> Langage de programmation -> Programme
À une couche particulière, vous utilisez les concepts de la couche sous-jacente immédiate .
Cette compréhension est-elle correcte? Si ce n'est pas le cas et que vous pensez qu'en concevant des programmes, nous pouvons utiliser directement les concepts de la théorie des catégories, veuillez vous référer à certains articles ou articles de blog où cela est démontré.
REMARQUE: En concevant des programmes, j'entends la conception de programmes basés sur différents concepts, comme la concurrence, le parallélisme, la réactivité, le passage de messages, etc.