O poder de programação funcional em Python
Cada vez mais e mais eu gosto dos recursos de programação funcional em python. E, como eu uso essa linguagem para resolver tarefas mais variáveis, não dá para não perceber que a velocidade de desenvolvimento e eficiência do código tornam-se cada vez melhores, por simplesmente aplicar técnicas de programação funcional.
Por exemplo, sem a programação funcional, eu usava o seguinte código antes para ler um arquivo com uma série de números, e determinar a média dos valores:
fd = open("data.log")
data = fd.readlines()
valores = []
le os dados
for line in data:
line_val = float(line.strip())
valores.append(line_val)
calcula a media
media = 0
for item in valores:
media += item
media /= len(media)
Re-escrevendo isso com técnicas de programação funcional, temos o seguinte:
le os valores do arquivo, transformando-os para floats, e ignorando strings vazias
valores = [float(val) for val in open("data.log").readlines() if len(val) > 1]
calcula a media, somando todos os valores e dividindo pelo número de elementos no vetor
media = reduce(lambda x, y: x+y, valores) / len(valores)
(É óbvio que é só um exemplo rápido, não estou tratando as excessões aqui, mas para resolver problemas simples do dia-a-dia é mais de que suficiente!)
O essencial são as funções lambda, map, reduce e filter. Todos os detalhes interessantes sobre esse estilo de programação eu achei aqui, e recomendo essa apresentação para todos!









