Depois de aprender Haskell e outras linguagens FP não puras, decidi ler sobre a teoria das categorias. Depois de obter um bom entendimento da teoria das categorias, comecei a pensar em como os conceitos da teoria das categorias podem ser usados para pensar em criar programas, mas não importa o quanto tentei, parece que esse não é o caminho a seguir.
Depois de passar muitas tentativas frustradas de relacionar a teoria das categorias ao projeto de programas , cheguei à conclusão de que:
- A teoria das categorias é útil ao projetar uma linguagem de programação .
- A teoria das categorias não é algo que você usa ao criar programas (mesmo quando usa uma linguagem que foi projetada com base nos princípios das categorias). Por exemplo: Ao programar em Haskell, você utilizará tipos, tipos de construtor, funções, funções de ordem superior etc. para projetar seu programa, não conceitos de teoria de categorias.
Em resumo, temos o sistema de camada abaixo (a ordem é baixa para alta):
Teoria da categoria -> Linguagem de programação -> Programa
Em uma camada específica, você usa os conceitos da camada subjacente imediata .
Este entendimento está correto? Caso contrário, e você acredita que, ao projetar programas , podemos usar diretamente os conceitos da teoria das categorias, consulte alguns artigos ou postagens de blog onde está sendo demonstrado.
NOTA: Ao projetar programas, quero dizer projetar programas com base em diferentes conceitos, como simultaneidade, paralelismo, reativo, passagem de mensagens etc.