Bom, eu e o Christian acabamos de lançar um novo Blog: o Haskell Guys. Esperamos escrever bastante sobre Programação Funcional e Haskell (ainda somos novatos com esses tópicos, vamos compartilhar nosso conhecimento na medida em que aprendermos).
A programação funcional é bem diferente da procedural, com a qual estamos acostumados. Ela é baseada em expressões, enquanto a última é baseada em comandos.
Não viu muito bem a diferença? Vou ser um pouco mais claro. Na programação funcional, não há variáveis ou qualquer mudança de estado, deve-se apenas escrever expressões (como funções na matemática) e o compilador se vira.
Um pequeno (e clássico) exemplo é a função fatorial em Haskell. Na matemática, calculamos o fatorial de um número natural como a multiplicação dele e de todos os números naturais (com exceção do zero) anteriores a ele: 5! = 5*4*3*2*1 = 60. Uma forma geral seria n! = n*(n-1)!, com a definição de que 0! = 1.
Como isso ficaria em Haskell? Simples:
fat 0 = 1fat n = n * fat(n-1)Alguma semelhança com a definição de fatorial?
Uma característica interessante da programação funcional é que seus programas costumam ser bastante estáveis, com poucas linhas de código e baixa manutenção. Mas esse paradigma nunca fez grande sucesso na indústria devido, principalmente, à baixa performance de suas aplicações e ao consagramento anterior da programação procedural.
Boa leitura desse novo Blog.
Tags: blog, HaskellGuys, haskell, programação funcional