Ferramentas de Utilizador

Ferramentas de Site


dev_geral:python:lambda

Esta é uma versão antiga do documento!

Funções Lambda

FIXME:ilustrar com exemplos com mais de uma variável e dar exemplos da poupança de código.

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 filter(), map() e reduce().

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

Por exemplo, para definir uma função que calcule o quadrado de um número, pode usar-se o seguinte código:

def quadrado(x):
  return x*x

e invocar:

quadrado(2)

retorna 4.

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

(lambda x: x*x)(2)

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:

quadrado = (lambda x: x*x)

Que pode ser chamado da seguinte forma:

quadrado(2)

Referências:
Using lambda Functions.

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