Великий патріарх Гвідо сказав колись, що траса стеку змінюється через хвостову рекурсію (це остання процедура у рекурсії). Це означає, що замість функціонального підходу пітоністи мають використовувати явну ітерацію. Функції - це коли ти мапиш одну колекцію з іншою, і ставиш умову, що кожне вхідне значення відповідає вихідному. Це все означає, що у пітоні не вдалося прижитися такій парадигмі, бо отець не дав струменту. Ясно, що є yield map reduce і інші functools. І ясно, що коли ти пишеш
PHP код:
for line in ( l.split(":") for l in ( l.strip() for l in someFile ) ):
pass
ти теж відчуваєш ці віяння (це не що інше, як функції першого роду, тобто, коли функції використовуються як аргументи), але то всьо не то пальто. Функціональні мови - то скала і інша хіпстота.