Resumo |
Mônadas foram introduzidas na década de 1960 no âmbito da Álgebra Homológica, fornecendo um profundo entendimento de conceitos como funtores derivados, teoria homotópica, entre outros. Um monoide, na categoria de conjuntos, é uma estrutura algébrica definida por uma operação que é associativa e possui elemento neutro. A ideia intuitiva de uma mônada é a de um monoide na categoria de endofuntores de uma categoria C. A teoria de categorias (na verdade é mais uma linguagem do que uma teoria) foi introduzida por Mac Lane e Eilemberg da década de 1940. De certa forma, ela substitui a linguagem da teoria de conjuntos. Devido a seu grande potencial de síntese e profundidade, rapidamente se tornou a linguagem utilizada em várias áreas da Matemática, permitindo a resolução de problemas e o avanço de teorias em geometria algébrica, topologia, equações deferenciais etc. Na ciência da computação a linguagem das categorias ocupa cada vez mais espaço. Nos últimos anos, o aumento exponencial da complexidade de software e das redes computacionais, levou ao surgimento da programação funcional, onde dados (na programação imperativa tradicional) são substituídos por funções, e o resultado do programa é decorrente da aplicação destas funções. O ambiente da programação funcional é, assim, bastante propício ao uso da teoria de categorias, que substitui a lógica usual baseada na teoria de conjuntos. O conceito de mônadas, surgido na matemática pura, tem sido bastante utilizado em software, e resolvendo muitos problemas que vêm com a programação funcional. Outros vários conceitos de teoria de tategorias, como funtores e adjunções, também estão presentes nas linguagens funcionais. O objetivo deste trabalho foi estabelecer um paralelo entre as definições categóricas e computacionais das mônadas, e mostrar como ocorre a expansão de conceitos que surgiram na matemática, para dentro da área de computação. Neste trabalho, exemplos e aplicações são apresentados na linguagem de programação funcional Haskell. Utilizamos o software livre GHC, para desenvolvimento de programas básicos na linguagem Haskell e identificamos nestes os conceitos categóricos. A metodologia de trabalho foi a leitura de artigos, o desenvolvimento de programas básicos em linguagem Haskell e encontros com o orientador. O projeto contou com auxílio financeiro do Instituto do Milênio - IM-AGIMB. |