Ferramentas de Utilizador

Ferramentas de Site


dev_geral:python:lambda

Esta é uma versão antiga do documento!

O Python tem uma característica interessantíssima que nem sempre é conhecida nem explorada: as funções lambda. Estas funções lambda não são exactamente as mesmas associadas à programação funcional, mas mesmo assim são um conceito bastante bom bem implementado no Python e que muitas vezes são usadas com as funções Função Filter, Função Map e Função Reduce.

Grosso modo, podemos ver as funções lambda como funções sem nome, que podem ser definidas/usadas na hora.

Por exemplo, se quiserem definir uma função que calcule o quadrado de um número, podem definir a seguinte função:

<code language="python">def quadrado(x):

return x*x

<\/code>

e invocar:

<code language="python">quadrado(2)<\/code>

retorna 4.

ou então podem fazer o cálculo na hora usando uma função lambda:

<code language="python">(lambda x: x*x)(2)<\/code>

que também retorna 4, pois estamos a definir: *x é o argumento da função lambda *x*x é a especificação da função *2 é o valor a aplicar à função

mais interessante ainda é definir a função de forma à mesma poder ser usada quando se pretende:

<code language="python">quadrado = (lambda x: x*x)<\/code>

quando fazem:

<code language="python">quadrado(2)<\/code>

vão obter 4.

Isto tem imensas aplicações e utilidades. Para saberem mais deixo aqui um capítulo sobre este tema: Using lambda Functions.

As funções lambda aplicadas com as funções Map, Filter e Reduce criam uma flexibilidade fantástica a quem explora o Python mais a fundo.

dev_geral/python/lambda.1193234761.txt.gz · Esta página foi modificada pela última vez em: 2018/05/14 21:37 (Edição externa)