Ao programar por muitos anos com linguagens como C e Java nós nos acostumamos demais com o modo imperativo de programação. Fazendo isso esquecemos algumas vantagens que o paradigma funcional pode nos trazer.
Ultimamente estou estudando Scala, e apesar da linguagem permitir que você construa código imperativo, a mesma traz interessantes construções que nos incentivam a usar o paradigma funcional.
Um exemplo simples mas que mostra esse conceito seria um código para varrer os parâmetros de entrada de um programa e simplesmente imprimi-los na tela.
Um código imperativo em Scala seria assim:
var i=0 while(i < args.length){ println(args(i)) i += 1 }
Como podemos ver, nada muito complexo, simplesmente um laço que varre a lista imprimindo seus elementos.
Utilizando um pouco do paradigma funcional presente em Scala o mesmo código poderia ser feito da seguinte maneira:
args.foreach(arg => println(arg))
O seguinte código define um function literal. Esta função recebe como parâmetro um item da lista de argumentos e imprime o mesmo, o processo é repetido para cada argumento da lista.
Da mesma maneira que foi chamado um println, qualquer função poderia ter sido chamada sobre a iteração.
É importante notar que o código acima é facilmente implementado em Java, basta pensarmos de maneira mais funcional.
Entretanto, como o valor extraído da lista é o único parâmetro para a função que será executada, é possível fazer com que esse código seja ainda mais simples:
args.foreach(println)
E você achando que o laço no início do post que era simples ein =)
2 comentários:
Interessante essa última construção hein. Quase me convenceu a estudar Scala :P
Comecei a estudar a linguagem a umas duas semanas e a cada momento estou mais convencido de ela vale a pena.
Postar um comentário