Привет!
Сегодня мы начнём говорить на очень важную тему — функциональное программирование. Значение ФП в современной веб-разработке трудно переоценить. Архитектура любого крупного современного проекта включает в себя пользовательские библиотеки функций и на собеседовании любого уровня в обязательном порядке будут вопросы по ФП.
Введение в функциональное программирование
Функциональное программирование(ФП) — способ организации кода через написание набора функций.
EcmaScript, являясь мультипарадигменным языком программирования, реализует наряду с прочими и функциональную парадигму. Это означает, что функции в ES являются данными и могут быть переданы в функции, возвращены из функций и могут сами принимать функции. Т.е. функции в ES являются функциями первого класса.
Отсюда следуют следующие определения:
Функциональный агрумент(Functional argument, фунарг) — аргумент, значением которого является функция.
Функция высшего порядка(ФВП, higher-order-funtion, hof) — функция, которая принимает функции в качестве аргументов.
Функции с функциональным значением(Function valued functions) — функция, которая возвращает функцию.
Все эти типы функций условно объединяют в функции первого класса, и, как следует из определения выше, в ES все функции являются объектами первого класса.
Читать полностью »