Softa

Aplicações Web 2.0 com Ruby on Rails e Postgres 
« Back to blog

Diversão com Álgebra Relacional e Haskell

Pessoal, a nova moda aqui na Softa é aprender Haskell. E tenho que confessar que a linguagem é bonita mesmo. Haskell foi mais fácil no começo do que eu imaginava (ok, eu imaginava um monstro). E logo consegui fazer algo bem divertido, um mapeamento de algebra relacional para SQL. Implementei duas operações, a projeção (projection) e a junção natural (natural join). O código é apenas um exercício de quem está aprendendo a linguagem, portanto críticas e sugestões são muito bem vindas, e até desejadas :)

Outro detalhe divertido é usar os operadores da Álgebra Relacional (com caracteres unicode), como no seguinte código no ghci (que assume a existência de uma base teste e dos drivers HDBC para o PostgreSQL):

Posted by Diogo Biazus 

Comments (4)

Jun 04, 2010
Juan Maiz liked this post.
Jun 04, 2010
Juan Maiz said...
Cara, de fato o HaskellDB implementa essas operações. Eu só não saquei neste caso a definição dos tipos "Sql" e "Relation" se eles são só Strings. Pra mim isso aqui seria suficiente neste caso:

http://gist.github.com/425546

Jun 04, 2010
Diogo Biazus said...
De acordo, na verdade só estava experimentando com os tipos. Mas se fôssemos implementar uma camada mais completa, no estilo do HaskellDB, os tipos seriam úteis para definir as operações apenas sobre Relações e para armazenamento de meta-dados.
Jun 04, 2010
Juan Maiz said...
Correto

Leave a comment...