Elepsis Eclipse
Гений
(64065)
4 года назад
print( apply_twice(add_five, 10) )
↓
# apply_twice сразу срабатывает и хочет вернуть результат вычисления add_five(add_five(10)) , но чтобы его вернуть - надо сначала посчитать, поэтому это формально можно переписать так:
↓
print( add_five(add_five(10)) )
↓
# Если есть несколько вложенных функций - первой всегда срабатывает та, что "глубже всех", add_five(10) возвращает 15, с которым работает уже внешний add_five()
↓
print( add_five(15) )
↓
print( 20 )
↓
# Та же история: print() тоже функция, и она всё это время ждала, пока вложенные функции отработают и дадут результат.
↓
20
P.s. вроде как недостаточно просто написать def, чтобы это назвать "функциональным программированием" )
return func(func(arg))
def add_five(x):
return x + 5
print(apply_twice(add_five, 10))
Почему ответ 20?