54 lines
1.1 KiB
Python
54 lines
1.1 KiB
Python
|
"""
|
||
|
Funciones anónimas, pequeñas son creadas con "lambda".
|
||
|
ej.
|
||
|
"""
|
||
|
lambda a, b: a + b
|
||
|
# retorna la suma de sus dos argumentos
|
||
|
|
||
|
"""
|
||
|
Las funciones Lambda pueden ser usadas en cualquier lugar donde sea requerido
|
||
|
un objeto de tipo función. Están sintácticamente restringidas a una sola expresión.
|
||
|
|
||
|
Semánticamente, son solo azúcar sintáctica para definiciones normales de funciones.
|
||
|
|
||
|
Al igual que las funciones anidadas, las funciones lambda pueden hacer referencia a
|
||
|
variables desde el ámbito que la contiene:
|
||
|
"""
|
||
|
def hacer_incrementador(n):
|
||
|
return lambda x: x + n
|
||
|
|
||
|
f = hacer_incrementador(42)
|
||
|
f(0)
|
||
|
# 42
|
||
|
|
||
|
f(1)
|
||
|
# 43
|
||
|
|
||
|
f(10)
|
||
|
# 52
|
||
|
|
||
|
import time
|
||
|
|
||
|
f = lambda x: x + 1
|
||
|
|
||
|
print("Tipo de f:", type(f))
|
||
|
# Tipo de f: <class 'function'>
|
||
|
|
||
|
print("f(3)=", f(3))
|
||
|
# f(3)= 4
|
||
|
|
||
|
def funcioN_time(f, *args):
|
||
|
start_time = time.time()
|
||
|
result = f(*args)
|
||
|
end_time = time.time()
|
||
|
print("Tiempo de ejecución: ", end_time - start_time, "milisegundo(s)")
|
||
|
return result
|
||
|
|
||
|
print("f(5) =", funcioN_time(f, 5))
|
||
|
# Tiempo de ejecución: 2.86102294921875e-06 milisegundo(s)
|
||
|
|
||
|
f(5) = 6
|
||
|
|
||
|
|
||
|
|