Функтор – функція, яка отримує значення та функцію, розпаковує значення для отримання їх внутрішні значення (значення), викликає отриману функцію з внутрішніми значеннями, запаковує повернені значення у нову структуру, і згодом повертає нову структуру.Aug 21, 2016
Усі використовуються для того, щоб передавати функціям «брудні» значення, тоді як функції очікують на «чисті» значення на вході. Функтори використовують "чисту" функцію. Аплікаційні функтори – "Чисту" функцію всередині "забруднення".
Функтори застосовують звичайну функцію до упакованого значення: Аплікаційні функтори застосовують упаковану функцію до упакованого значення: Монади застосовують функцію, яка повертає упаковане значення, до упакованого значення. У монад є функція >>= (вимовляється "зв'язування" (bind)), що дозволяє робити це.
Об'єкт функції (або функтор) – це будь-який тип, що реалізує operator(). Цей оператор називається оператором дзвінка або іноді оператором програми. Стандартна бібліотека C++ використовує об'єкти функцій головним чином як критерії сортування для контейнерів та алгоритмах.