Expressões Lambda
Por Rafael da Silva
(crafards@gmail.com)
Nesta edição, conheça um pouco sobre o uso da palavra reservada ‘lambda’ em Python.

Em Python, existe um conceito bastante poderoso e integrado à linguagem que é chamado de expressão lambda ou forma lambda. O conceito em si é bastante simples: consiste em uma função que é atribuida a um objeto. Por conter a palavra reservada lambda o objeto se comportará como uma função. Uma função lambda é muito pratica, pois funciona como uma função normal, mas só contem uma linha. Funções lambda não utilizam a palavra reservada return.

Uma função qualquer:

def name(arguments):
        return expression 

Uma função utilizando lambda:

variable = lambda arguments: expression

Uma função comum que retorna o parâmetro elevado ao quadrado:

def f(x):
    return x**2 

O mesmo exemplo utilizando uma função lambda:

 f = lambda x: x**2

Também é possível criar expressões lambda sem atribuir a variável alguma

 print (lambda x:x**3)(3) 

Outros exemplos:

Uma função lambda com dois parâmetros

f = lambda a, b : a+b

O uso de palavra lambda é bem extenso e ela pode ser utilizada até como objeto de retorno de uma outra função:

def incrementador(n):
    return lambda x:x:+n

Podemos utilizar expressões lambdas em outras funções que já estão acopladas à linguagem como filter, map e reduce. Uma função que retorna os números pares entre 0 e 9:

num_pares = filter(lambda x: x % 2 == 0, range(10))

Uma expressão que ele ao quadrado os números em uma lista, no caso, de 0 a 9.

map(lambda x: x**2, range(10))

Já este exemplo faz o produtório dos elementos da lista

reduce(lambda x, y: x*y, range(1,5))

Pode-se também criar facilmente uma expressão que conte o tamanho das palavras em uma lista.

map(lambda x: len(x),'Este exemplo conta o tamanho das palavras'.split())

As funções lambda são sempre opcionais, tudo que fazemos com ela, podemos fazer também com uma função normal. O uso de expressões lambda permite que você possa representar a lógica de uma função sem precisar defini-la explicitamente. Isso pode deixar o código mais facil, mais claro e mais rápido de ser lido

Jornal PETNews - Edição: Jessika Renally - Revisão: Tiaraju Smaneoto e Lívia Sampaio
Grupo PET Computação UFCG, 2013. All rights reserved.