Vinicius Baggio Fuentes

  1. Software Engineer — Medium
  2. Autor — Casa do Código
  3. Compre já!
17 Nov 2012 — Aprendendo programação funcional

Aprendendo programação funcional

Faz um tempo que eu tento aprender programação funcional, mas sempre encontrei barreiras. Com certeza a principal razão disso é que eu sempre programei com Orientação a Objetos, com Ruby, Java e Python e linguagens procedurais, como C. Porém, desde o começo de 2011 tenho ouvido falar muito de linguagens funcionais, como Erlang, Scala e Clojure, e o interesse jamais se dissipou.

Como eu não conhecia nenhuma linguagem funcional, resolvi começar diretamente com Clojure, pelo simples motivo de ser baseada em LISP, a linguagem funcional considerada fundamental. Apesar da linguagem ser elegante e minimalista, todas as minhas tentativas de implementações de algoritmos comuns, como o “Crivo de Eratóstenes”, nunca chegaram nem perto de implementações mais canônicas, me fazendo pensar que jamais entenderia a forma de pensar, mesmo eu sendo capaz de entender a sintaxe da linguagem.

A minha caminhada foi um pouco lenta, principalmente por causa de outros desafios, como escrever um livro sobre Rails e me mudar para San Francisco. Porém, tudo isso mudou com o curso de programação funcional usando Scala, da Coursera. O curso foi dado por ninguém menos que o Martin Odersky, quem concebeu o Scala, além de ser bastante respeitado pelo seu trabalho na linguagem Java em si.

Digamos que, depois de bastante estudar e passar horas no Scala IDE, consigo dizer que sei alguma coisa, que consegui entender alguns dos aspectos mais importantes, como sequências lazy. Consegui assimilar a forma de se escrever aplicações funcionais, que é sutilmente diferente do que estamos acostumados.

Recentemente descobri que a melhor forma de eu aprender e memorizar um assunto de forma duradoura é escrevendo sobre o assunto em pauta. Portanto, vou escrever uma série de posts sobre o assunto, de forma parcialmente ad hoc. Os assuntos que pretendo cobrir são:

Durante os posts, vou tentar, sempre que possível, usar apenas JavaScript. Esses posts serão um experimento e portanto, se gostarem e tiverem feedback, basta deixar um comentário.

Até o próximo post.

Leia também

blog comments powered by Disqus