Основные возможности функциональных языков программирования
•	Функции можно присваивать переменным, передавать как аргументы и возвращать из других функций.
•	Функции, которые не имеют побочных эффектов и всегда возвращают одно и то же значение для одинаковых входных данных.
•	Данные, которые нельзя изменить после создания, что упрощает отладку и делает программы более надежными.
•	Функции, которые принимают другие функции в качестве аргументов или возвращают их.
•	Каррирование 
•	Рекурсия

Поддержка функционального программирования в Python
•	Функции можно присваивать переменным, передавать и возвращать.
•	Лямбда-функции: краткий синтаксис для создания анонимных функций.
•	Встроенные функции, такие как map(), filter() и reduce(), принимают функции в качестве аргументов.
•	Строки и кортежи являются неизменяемыми.
•	Модуль functools: дает инструменты для работы с функциональным программированием
