Después de aprender Haskell y otros lenguajes FP no tan puros, decidí leer sobre teoría de categorías. Después de obtener una buena comprensión de la teoría de la categoría, comencé a pensar en cómo los conceptos de la teoría de la categoría se pueden usar para pensar en el diseño de programas, pero no importa cuánto lo intente, parece que este no es el camino a seguir.
Después de pasar muchos intentos fallidos de relacionar la teoría de categorías con el diseño de programas , llegué a la conclusión de que:
- La teoría de categorías es útil al diseñar un lenguaje de programación .
- La teoría de categorías no es algo que se usa al diseñar programas (incluso cuando se usa un lenguaje diseñado en base a principios de categoría). Por ejemplo: al programar en Haskell, utilizará tipos, constructor de tipos, funciones, funciones de orden superior, etc. para diseñar su programa, no conceptos de teoría de categorías.
En resumen, tenemos el siguiente sistema de capas (el orden es de menor a mayor):
Teoría de la categoría -> Lenguaje de programación -> Programa
En una capa particular, utiliza los conceptos de la capa subyacente inmediata .
¿Es correcto este entendimiento? Si no es así, y cree que al diseñar programas podemos usar directamente los conceptos de teoría de categorías, consulte algunos artículos o publicaciones de blog donde se está demostrando.
NOTA: Al diseñar programas me refiero a diseñar programas basados en diferentes conceptos, como concurrencia, paralelismo, reactividad, transmisión de mensajes, etc.