Funciones def-return vs lambda

Las dos formas de escritura de funciones matemáticas básicamente hacen lo mismo. Sin embargo, cuando la función se define por tramos, la forma def-return se convierte en la más usada.

Se adjunta un ejemplo:

Funciones Lambda

Permite describir funciones sencillas de una sola línea, que no está conformada por intervalos.

f(x) = x \cos(x) - 2 x^2 + 3 x -1
import numpy as np
fx = lambda x: x*np.cos(x) - 2*(x**2) + 3*x -1
>>> fx(0.2)
-0.28398668443175157

Funciones def-return

Permiten describir en detalle lo que sucede con una función matemática por intervalos. Tiene la ventaja de permitir definir valores por intervalos, puntos discontínuos, etc.

f(x)= \begin{cases} x \cos(x) - 2 x^2 + 3 x -1, & x>0 \\1, & x \leq 0 \end{cases}
import numpy as np
def fx(x):
    if x>0:
        fi = x*np.cos(x) - 2*(x**2) + 3*x -1
    if x<=0:
        fi = 1 
    return(fi)
>>> fx(0.2)
 -0.28398668443175157