---
title: ASIX M3. [UF2]. Funcions lambda.
tags: asix, programació, funcions, programació modular
---
# ASIX1 M03: Programació bàsica
[vincle a font en MarkDown](https://hackmd.io/@JdaXaviQ/SyqPYyLZc)
---
# Funcions Lambda
Una funció _lambda_ és segons la documentació oficial es un tipus d'escriptura simplificat una drecera per quan et fa mandra crear una funció.
Veiem un exemple:
```python
f = lambda a, b: a + b
print(f(3, 6))
```
9
L'exemple anterior és equivalent a:
```python
def suma(a, b):
return a + b
f = suma
print(f(3,5))
```
8
Inclús podriem executarla a la mateixa línia de declaració:
```python
(lambda a,b: a + b)(3, 9)
```
12
Dos usos típics de les lambdes són:
1. Com a retorn d'una funció.
2. Com a paràmetre d'una funció que requereix d'una altra funció.
### Lambda com a retorn d'una funció.
#### Això es va inventar per a fer explotar caps. Preneu-vos-ho amb calma, pot ser perillós!!!
```python
def multiplicador(n):
return lambda a: a * n
tripletejador = multiplicador(3)
doblejador = multiplicador(2)
print(f"{tripletejador(8)=}")
print(f"{doblejador(8)=}")
```
tripletejador(8)=24
doblejador(8)=16
### Lambda com a paràmetre d'una funció.
#### Altrament coneguda com __callback__
```python
def suma(sum1, sum2, visualitzador = lambda a: str(a)):
return visualitzador(sum1 + sum2)
print (suma(3, 5))
print (suma(3, 5, lambda a: '<p>\n\tresultat: <span id="resultat">' + str(a) + "</span>\n</p>"))
print (suma(3, 5, lambda a: '{"resultat": ' + str(a) + '}'))
def el_meu_visualitzador(nombre):
resultat = "resultat: " + str(nombre)
return resultat
print (suma(3, 5, el_meu_visualitzador))
```
8
<p>
resultat: <span id="resultat">8</span>
</p>
{"resultat": 8}
resultat: 8
```python
```