Императивное программирование
В 1980-х годах возрос интерес к объектно-ориентированному программированию (ООП). В 1980 году сотрудники исследовательского центра Xerox PARC на основе языка Smalltalk, разработанного Аланом Кэем в 1969 году, создали язык Smalltalk-80. Бьерн Страуструп на основе языка C и по образу и подобию языка Simula (предположительно, первого в мире ООП-языка, разработанного ещё в 1960-х годах) разработал язык C++. Первая реализация C++ была создана в 1985 году. В 1987 году Ларри Уолл выпустил язык Perl и интерпретатор для него. В 1990 году Гвидо ван Россум выпустил язык Python. В 1994 году в фирме Sun Microsystems был разработан язык Java. В 1995 году Расмус Лердорф разработал язык PHP. Язык Ruby был выпущен в 1995 году. Язык C# был выпущен в 2002 году вместе с программной платформой (фреймворком) .NET Framework, поддерживающей несколько языков.
Functional (C++)
Впервые заголовочный файл  появился в стандарте языка в 1998 году, куда был добавлен вместе со стандартной библиотекой шаблонов. Изначально в него вошел набор вспомогательных функциональных объектов для удобства использования алгоритмов STL. Также сюда вошли связыватели (binders) и набор обёрток функций, цель которых была облегчить работу в тех случаях, когда активно использовалась передача указателей на функции, то есть работа с функциями, как с некими объектами.
Существенное пополнение заголовочного файла предлагалось в библиотеке расширений С++ TR1
. Из библиотеки Boost в STL переносились такие классы, как function, bind, mem_fn, result_of, reference_wrapper, hash.
Большинство этих изменений, за исключением result_of, и вошло в актуальный на данный момент стандарт языка C++17. Поскольку классы function и bind во многом дублируют функциональность связывателей и обёрток функций редакции стандарта 1998-го года, то в С++11 последние были обозначены как устаревшие (deprecated).