terça-feira, 7 de julho de 2009

Tutoriais sobre mônadas

Pensei bem no último post e não quero construir mais um tutorial de mônadas. Acho que não consigo atingir a mesma profundidade, mantendo a mesma simplicidade apresentada nos dois tutoriais abaixo:

  • The Haskell Programmer’s Guide to the IO Monad - Don't Panic - Um tutorial bastante teórico, ligando a teoria das categorias a linguagem Haskell. Apesar de toda a matemática hardcore, é interessante para aprender que as mônadas não são um mecanismo de computação ou de sequenciamento, e sim que esses mecanismos podem ser emulados por uma mônada. Vale a pena também olhar o que a Wikipedia tem a dizer.
  • Monads for functional programming - Este artigo de Philip Wadler é exatamente o oposto do anterior: trata as mônadas apenas nos seus aspectos relacionados a implementação dos efeitos colaterais da linguagem, sem se preocupar com as questões matemático-filosóficas da teoria das categorias.

Os piores exemplos de mônadas são os tipos Maybe e as listas. Esses tipos, apesar de poderem ser monadicos, não demonstram o poderio dessa abstração. Wadler apresenta exemplos muito mais úteis, baseados em funções monadicas (Reader e State) e em monóides (Writer e Error). Vale a pena dar uma olhada, pois é exatamente isto que estou usando no código do concurso do ICFP 2009.

Nenhum comentário:

Postagens populares