Bullies funcionais

Você é um programador que só aprendeu Java e C e não entende o que esses pedantes de linguagens de programação funcionais ficam falando? A linguagem deles não tem loops e eles acham isso bom? As variáveis são constantes? Como dá pra programar com variáveis que não variam? E ainda por cima eles ficam rindo da sua linguagem imperativa/orientada a objetos?

Seus problemas acabaram! Chegou a explicação supersucinta sobre recursão e linguagens funcionais que vai permitir a você dizer com orgulho: “Eu sei o que significa tail recursion!” e colocar esses valentões em seu devido lugar.

Eis:

Faça uma chamada recursiva como última instrução da sua função, e você terá basicamente um goto com parâmetros! Cada loop será uma função, e todas as variáveis que mudam de valor durante iteração devem ser transformados em parâmetros dessa função.

Dá até pra traduzir de um estilo para o outro mecanicamente, sem pensar muito! As variáveis só mudam de valor nas chamadas de função, aí faz sentido aquela história de “variáveis imutáveis”.

Tirinha relacionada do xkcd:

http://xkcd.com/1270/

Outra leitura interessante:

http://prog21.dadgum.com/23.html

Atenção: este post não oferece proteção contra programadores Haskell que vivem falando de monads. Use por sua conta e risco.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s