Что такое функциональное программирование и поддерживается ли оно в Python?
Уровень: Senior
Ответ
Функциональное программирование – парадигма, где основным элементом являются функции, не имеющие побочных эффектов и состояния (чистые функции), а данные неизменяемы. Python не является чисто функциональным языком, но поддерживает некоторые функциональные приёмы: функции – объекты первого класса (их можно передавать, возвращать), есть lambda-выражения (анонимные функции), встроенные функции высшего порядка (map, filter, reduce – через functools), генераторы, списковые/словари/множества включения. Также возможно писать код без явного изменения состояния. Но Python не навязывает функциональный стиль и допускает побочные эффекты – поэтому называют его мультипарадигменным, с поддержкой элементов ФП.