Кто-то недавно спрашивал, почему для продвинутых, а потому что в некоторых статьях мы будем разбираться... вот в этом:
Очень странная конструкция, я согласен, но давайте разберемся что тут происходит. Мы печатаем функцию SecondFunction(), которая принимает 2 параметра. Первым мы передаем FirstFunction, которая возвращает число с плавающей точкой, она принимает 7 параметров, первым мы передаем эту же функцию, а остальными 6-ю мы передаем просто числа. В функцию FirstFunction находящуюся внутри функции FirstFunction мы передаем просто 7 чисел. Вторым же параметром в SecondFunction мы передаем просто 14... А в целом это звучит примерно как:
Функция print принимает функцию SecondFunction, принимающую первым параметром FirstFunction, принимающую первым параметром FirstFunction, принимающую первым параметром - 53, вторым - 26, третьим - 76, четвертым - 15.6, пятым - 17.2, шестым - 18.12; принимающую вторым параметром 14
Да, звучит очень странно. Еще для кого-то может показаться странным, почему функция такая длинная? Дело в том, что если у функции много параметров - ее можно вызывать в столбик, а не в строчку. В конце строки необходимо поставить запятую. Но сейчас мы посмотрим на реализацию этих функций...
С FirstFunction вроде все понятно, но вот SecondFunction снова делает что-то не то. Снова скороговорка:
Функция SecondFunction возвращает сумму чисел num1, num2 и FirstFunction, которая является FirstFunction принимающей параметр 87, 12, 23, 32, 31.2, 76.5, FirstFunction являющуюся FirstFunction принимающий 32, 43, 54, 87, 12.3, 43, 54...
Конечно, в данном случае это бесполезно, но вот в каких-нибудь реальных проектах... Где выполняются функции внутри функций тысячи раз, например в модулях...
Кстати, интересно, что результатом всех наших функциональных вычислений является 0.6933042742272928
Я надеюсь вы в отличии от меня что-то поняли с первого раза, я же на этом заканчиваю, а если вам понравилось поставьте лайк или напишите комментарий.
Возможно, вас еще заинтересуют эти статьи: