Я пытаюсь написать лямбда-выражение, которое вызывает себя, но я не могу найти синтаксиса для этого или даже если это возможно.Возможны рекурсивные лямбда-выражения?
По сути то, что я хотел передать следующую функцию в следующем лямбда-выражения: (я понимаю, что это глупо приложение, он просто добавляет, но я исследовать то, что я могу делать с лямбда-выражений в 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]
но вызов лямбда-формы для добавления результатов в ошибку времени выполнения, поскольку достигается максимальная глубина рекурсии. Возможно ли это сделать в python? Или я просто делаю какую-то глупую ошибку? О, я использую python3.0, но я не думаю, что это должно иметь значение?
лямбда-выражения довольно разорванных питон. я не достаточно хорошо знаком, чтобы дать полный ответ, но если он вас убедит, я понимаю, что Гвидо ненавидит выражения лямбда: P –
см. здесь, точный дубликат: http://stackoverflow.com/questions/481692/can-a -lambda-function-call-yourself-recursively-in-python –
В них нет ничего разбитого. Они просто бесполезны, поскольку вместо этого вы можете использовать функцию, которую легче читать и понимать. –