Описание тега functor

Термин "функтор" имеет несколько общих значений: 1. Функциональный объект. В объектно-ориентированных языках это функция, которая позволяет использовать объекты, как если бы они были обычными функциями. 2. Математическая структура, которая занимается отображениями между категориями. Эта концепция является полезной абстракцией в некоторых языках программирования, особенно в Haskell, где она реализована как класс типа. 3. В OCaml - модуль, принимающий в качестве аргумента другой модуль.

В C++ объекты функций часто называют функторами.

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

В OCaml функтор - это модуль, который может принимать другие модули в качестве аргументов, создавая специализированный модуль. Фактически функция, отображающая один модуль в другой.

В Haskell, Functor - это класс типов, который соответствует математической структуре из теории категорий, Functor, которая имеет дело с отображениями между категориями.

В Прологе корень составного термина functor(arg1, arg2, ..., argn)известен как его "функтор". Заголовок предложения предиката представлен составным термином, функтором которого является имя предиката (например,father(F, S) :- ... .).

Ссылки