Estoy tratando de escribir una expresión lambda que se llame a sí misma, pero no puedo encontrar ninguna sintaxis para eso, o incluso si es posible.expresiones lambda recursivas posibles?
Esencialmente lo que quería transferir la función siguiente en la siguiente expresión lambda: (I cuenta de que es una aplicación de tonto, que sólo añade, pero estoy explorando lo que puedo hacer con lambda-expresiones en Python)
def add(a, b):
if a <= 0:
return b
else:
return 1 + add(a - 1, b)
add = lambda a, b: [1 + add(a-1, b), b][a <= 0]
pero llamando a la forma lambda de agregar resultados en un error de tiempo de ejecución porque se alcanza la profundidad máxima de recursión. ¿Es posible hacerlo en Python? ¿O solo estoy cometiendo un error estúpido? Oh, estoy usando python3.0, pero no creo que eso importe?
expresiones lambda son bastante roto en Python. No estoy lo suficientemente familiar como para hacer una respuesta completa, pero si te convence, entiendo que Guido odia las expresiones lambda: P –
mira aquí, duplicado exacto: http://stackoverflow.com/questions/481692/can-a -lambda-function-call-itself-recursively-in-python –
No hay nada roto sobre ellos. Son inútiles, ya que puede usar una función en su lugar, que es más fácil de leer y comprender. –